您的位置:首页 > 编程语言 > Java开发

JAVA基础再回首(十二)——Character类、Math类、Random类、System类

2016-08-15 20:04 483 查看

JAVA基础再回首(十二)——Character类、Math类、Random类、System类

版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://blog.csdn.net/m366917

今天写完了博客,来和大家聊一个话题

最可怕的是,那些富二代比你还努力啊

这样的人,我相信在你的身边肯定存在着,那么,富二代为什么要这么拼?

如果一般人失败了,可能就周围几个人看笑话;而富二代如果失败了,看他笑话的,能排几条街。

有些富二代赚钱的原因更单纯:穷。

我们觉得他们是富二代,在他们的圈子里,未必如此。

就像我们眼里的有钱人,在王思聪眼里,还是个穷逼。

而王思聪在马克扎克伯格、比尔盖茨这些全球超级富豪眼里,也是穷逼啊。

既然穷就要努力奋斗。

好吧,就算他们不认为自己穷,比如“国民爸比”马云的儿子马元峰,算是中国最顶级的富二代了吧?据说在杭州读书的时候就是学霸,现在在伯克莱大学读书,据周围人爆料,评价他是四个字:低调、勤奋。

自怨自艾是世界上最傻逼最不酷的事了。

你苦苦追求的上限,不过是人家的起点。

那你先到上限再说啊!

你觉得人家是富二代,你再怎么努力都超不过了?

那你先把那些不是富二代的大多数超过了再说呀。

你都不是富二代了,你都输在起跑线上了,所以你更要拼尽全力啊。

正是因为没有爹可以拼,我们才要拼命啊。

有一段话,我很喜欢:人会长大三次。第一次是在发现自己不是世界中心的时候。第二次是在发现即使再怎么努力,终究还是有些事令人无能为力的时候。第三次是在,明知道有些事可能会无能为力,但还是会尽力争取的时候。

作为乌龟,我们可以去自己想去的地方。但是不要停止奔跑。

我们继续来学习Java的常用类

Character类

首先我们来了解它的概述及其构造方法

Character类概述

Character 类在对象中包装一个基本类型 char 的值,此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然

构造方法

public Character(char value)

public class CharacterDemo {
public static void main(String[] args) {
// 创建对象
//       Character ch = new Character((char) 97);
Character ch = new Character('a');
System.out.println("ch:" + ch);
//运行程序后可以发现:这两个对象的结果是相同的
}
}


Character类成员方法

public static boolean isUpperCase(char ch):判断给定的字符是否是大写字符

public static boolean isLowerCase(char ch):判断给定的字符是否是小写字符

public static boolean isDigit(char ch):判断给定的字符是否是数字字符

public static char toUpperCase(char ch):把给定的字符转换为大写字符

public static char toLowerCase(char ch):把给定的字符转换为小写字符

快上车,一起写个Demo,好让大家理解

public class CharacterDemo {
public static void main(String[] args) {
// public static boolean isUpperCase(char ch):判断给定的字符是否是大写字符
System.out.println("isUpperCase:" + Character.isUpperCase('A'));
System.out.println("isUpperCase:" + Character.isUpperCase('a'));
System.out.println("isUpperCase:" + Character.isUpperCase('0'));

// public static boolean isLowerCase(char ch):判断给定的字符是否是小写字符
System.out.println("isLowerCase:" + Character.isLowerCase('A'));
System.out.println("isLowerCase:" + Character.isLowerCase('a'));
System.out.println("isLowerCase:" + Character.isLowerCase('0'));

// public static boolean isDigit(char ch):判断给定的字符是否是数字字符
System.out.println("isDigit:" + Character.isDigit('A'));
System.out.println("isDigit:" + Character.isDigit('a'));
System.out.println("isDigit:" + Character.isDigit('0'));

// public static char toUpperCase(char ch):把给定的字符转换为大写字符
System.out.println("toUpperCase:" + Character.toUpperCase('A'));
System.out.println("toUpperCase:" + Character.toUpperCase('a'));

// public static char toLowerCase(char ch):把给定的字符转换为小写字符
System.out.println("toLowerCase:" + Character.toLowerCase('A'));
System.out.println("toLowerCase:" + Character.toLowerCase('a'));
}
}
//结果就不必多说了,很容易理解的。


我们来一起做一个Character类的综合练习吧!

//我们要做一个统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(比如"Adu123Messi"这个字符串)
public class CharacterTest {
public static void main(String[] args) {
//首先定义一个字符串
String str = "Adu123Messi";
//然后让我们定义三个统计变量
int bigCount = 0;//大写字母
int smallCount = 0;//小写字母
int numberCount = 0;//数字
// 把字符串转换为字符数组。
char[] chs = str.toCharArray();

// 遍历字符数组获取到每一个字符
for (int x = 0; x < chs.length; x++) {
char ch = chs[x];

// 判断该字符
if (Character.isUpperCase(ch)) {
bigCount++;
} else if (Character.isLowerCase(ch)) {
smallCount++;
} else if (Character.isDigit(ch)) {
numberCount++;
}
}
// 输出结果
System.out.println("大写字母:" + bigCount + "个");
System.out.println("小写字母:" + smallCount + "个");
System.out.println("数字字符:" + numberCount + "个");
}
}


输出结果:

大写字母:2个

小写字母:6个

数字字符:3个

Math类

Math类概述

Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

成员变量

public static final double PI

public static final double E

成员方法

public static int abs(int a):绝对值

public static double ceil(double a):向上取整

public static double floor(double a):向下取整

public static int max(int a,int b):最大值

public static double pow(double a,double b):a的b次幂

public static double random():随机数 [0.0,1.0)

public static int round(float a) 四舍五入

public static double sqrt(double a):正平方根

这么热的天,竟然停电了。我只能用电脑剩余的电量写了。希望一会我写完电能来。

public class MathDemo {
public static void main(String[] args) {
// public static final double PI
System.out.println("PI:" + Math.PI);//PI:3.141592653589793
// public static final double E
System.out.println("E:" + Math.E);//E:2.718281828459045

// public static int abs(int a):绝对值
System.out.println("abs:" + Math.abs(10));
System.out.println("abs:" + Math.abs(-10));

// public static double ceil(double a):向上取整
System.out.println("ceil:" + Math.ceil(12.34));//13.0
System.out.println("ceil:" + Math.ceil(12.56));//13.0

// public static double floor(double a):向下取整
System.out.println("floor:" + Math.floor(12.34));//12.0
System.out.println("floor:" + Math.floor(12.56));//12.0

// public static int max(int a,int b):最大值
System.out.println("max:" + Math.max(12, 23));//23
// 获取三个数据中的最大值
// 方法的嵌套调用
System.out.println("max:" + Math.max(Math.max(12, 23), 18));
// 获取四个数据中的最大值
System.out.println("max:"+ Math.max(Math.max(12, 78), Math.max(34, 56)));

// public static double pow(double a,double b):a的b次幂
System.out.println("pow:" + Math.pow(2, 3));

// public static double random():随机数 [0.0,1.0)
System.out.println("random:" + Math.random());
// 获取一个1-100之间的随机数
System.out.println("random:" + ((int) (Math.random() * 100) + 1));

// public static int round(float a) 四舍五入(参数为double的自学)
System.out.println("round:" + Math.round(12.34f));//12
System.out.println("round:" + Math.round(12.56f));//13

//public static double sqrt(double a):正平方根
System.out.println("sqrt:"+Math.sqrt(4));
}
}


Random类

Random类概述

此类用于产生随机数

如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。

构造方法

public Random()

public Random(long seed)

成员方法

public int nextInt():返回的是int范围内的随机数

public int nextInt(int n):返回的是[0,n)范围的内随机数

public class RandomDemo {
public static void main(String[] args) {
// 创建对象
Random r = new Random();
for (int x = 0; x < 10; x++) {
// int num = r.nextInt();//返回的是int范围内的随机数
int num = r.nextInt(100) + 1;//本来返回的是[0,100)范围的内随机数,+1后返回[1,100)
System.out.println(num);
}

//创建对象,给出指定的种子
Random r = new Random(123);
for (int x = 0; x < 10; x++) {
int num = r.nextInt(100) + 1;
System.out.println(num);//给定种子后,每次得到的随机数是相同的。
}
}
}


System类

System类概述

System 类包含一些有用的类字段和方法。它不能被实例化。

成员方法

public static void gc():运行垃圾回收器。

public static void exit(int status):终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。

public static long currentTimeMillis():返回以毫秒为单位的当前时间

public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

System.gc()可用于垃圾回收。

当使用System.gc()回收某个对象所占用的内存之前,通过要求程序调用适当的方法来清理资源。在没有明确指定资源清理的情况下,Java提高了默认机制来清理该对象的资源,就是调用Object类的finalize()方法。finalize()方法的作用是释放一个对象占用的内存空间时,会被JVM调用。而子类重写该方法,就可以清理对象占用的资源,该方法有没有链式调用,所以必须手动实现。

执行System.gc()前,系统会自动调用finalize()方法清除对象占有的资源,通过super.finalize()方式可以实现从下到上的finalize()方法的调用,即先释放自己的资源,再去释放父类的资源。

但是,不要在程序中频繁的调用垃圾回收,因为每一次执行垃圾回收,jvm都会强制启动垃圾回收器运行,这会耗费更多的系统资源,会与正常的Java程序运行争抢资源,只有在执行大量的对象的释放,才调用垃圾回收最好

public class SystemDemo {
public static void main(String[] args) {
System.out.println("1945年的今天");
System.exit(0);
System.out.println("日本宣布无条件投降");
}
}
//运行结果可以看到控制台只打印了:1945年的今天
//因为System.exit(0);终止当前正在运行的 Java 虚拟机。


我们再来看System.currentTimeMillis();返回以毫秒为单位的当前时间

//单独使用这样目前对我们来说意义不大,所以我们可以统计下面这段程序的运行时间
long start = System.currentTimeMillis();
for (int x = 0; x < 100000; x++) {
System.out.println("hello" + x);
}
long end = System.currentTimeMillis();
System.out.println("共耗时:" + (end - start) + "毫秒");


最后一个成员方法public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

我们先来说方法中的参数分别是什么意思

src——源数组

srcPos——原数组中的起始位置

dest——目标数组

destPos——目标数组中的起始位置

length——要复制的数组元素的数量

了解了参数,我们来一起联系一下

public class SystemDemo {
public static void main(String[] args) {
// 定义数组
int[] arr = { 11, 22, 33, 44, 55 };
int[] arr2 = { 6, 7, 8, 9, 10 };

System.arraycopy(arr, 1, arr2, 2, 2);

System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arr2));
}
}


输出结果:



今天的车就开到这里,让我们休息一下,来日再战。

欢迎有兴趣的同学加我朋友的QQ群:点击加群555974449

我在群里等你。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐