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
我在群里等你。
相关文章推荐
- java 基础 简单正则表达式使用规则、Math类、Random类、System类、BigInteger类、BigDecimal类、Date类、SimpleDateFormat类、Calendar类
- 正则表达式、Calendar类、SimpleDateFormat类、Date类、BigDecimal类、BigInteger类、System类、Random类、Math类(Java基础知识十四)
- 黑马程序员——高新技术---Java基础-常用类-正则表达式,Math类,Random类,System类,Date类
- java基础学习_常用类04_正则表达式、Math类、Random类、System类、BigInteger类、BigDecimal类、Date和DateFormat类、Calendar类_day14总结
- 14-02 Java Math类,Random类,System类,BigDecimal类
- Java基础14----正则表达式、Math类、System类、BigInteger、日期类
- java基础学习面向对象API中Math类random方法使用 五-5
- 黑马程序员——Java常用类笔记(下)【Math类、Random类、System类、Date类】
- JAVA基础再回首(五)——static关键字、main方法、java Api帮助文档的使用、Math类、代码块
- JAVA基础MATH类的应用(Random产生自己想要的范围类的随机数解决方案)
- JAVA中Math类的random()方法使用
- JAVA中Math类的random()方法使用
- Java基础之读文件——使用通道随机读取文件(RandomFileRead)
- Java基础重温(十二)-scjp 4
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十二)
- Java基础之读文件——使用通道随机读写文件(RandomReadWrite)
- java基础――random小例子(生成22选5彩票)
- 黑马程序员____14java基础 MAP集合 runtime对象和math类
- java基础入门----Math和Random
- 黑马程序员_java-基本数据类型的对象包装类-Math类-Random类-Scanner类<六>