枚举和String类

1.枚举

(1)定义格式:使用enum 代替class
(2)类中直接写常量的值
(3)enum修饰的类中都是静态常量
(4)不能直接new对象,必须直接赋值

2.包装类

(1)每一个基本数据类型对应的都有一个包装类
(2)int 包装类是integer ,char 包装类是character,
其他的都是首字母大写
(3)构造方法:每一个包装类都提供本身对应的数据类型和字符串(字符串必须为可以解析为对应的类型)作为参数的构造方法。(char
类型除外,只支持符作为参数的构造方法)
(4)***Value 将引用数据类型转换为基本数据类型,前缀是基本数据 类型的名称
(5)toString 方法 ,将对应的包装类型转换为字符串
(6)Parse***将字符串转换为对应的基本数据类型,转换数值的情况下字符串必须可以真正解析为一个数值才可以,否则就报Number
FormatException,数字转换异常 用法:String a = “12345”; int b =
Integer.parseInt(a); System.out.println(b+1); 结果:12346
(7)valueOf
将基本数据类型转换引用数据类型
(8)自动拆箱和装箱,从jdk1.5开始,支持包装类和基本数据类型混合运算,目前就是方便我们书写
①将基本数据类型直接赋值给对象,自动装箱 ②将引用数据类型直接赋值给基本数据类型,自动拆箱 Integer aaInteger =
Integer.valueOf(29);//装箱 Integer aaInteger = 29||integer aaInteger =
new Integer(29); int v = aaInteger.intValue();//拆箱 int v = aaInteger;

3.Math 类
(1)数学类,给我们提供一些数学公式,两个静态常量,PI E
(2)获取随机数的方法Math.Random()得到的是一个double类型的0.*的小数。

double random = Math.random();
		System.out.println((int)(random*10));

注意:random*10必须括起来,不然int random会把random的0.*小数转化为0 这样就不会得到随机数

面试题:

Math.ceil() 向上取整
Math.floor()向下取整
Math.round() 四舍五入

4.Random类

获取随机数
Random random = new Random();
System.out.println(random.nextInt(10));
System.out.println((int)(ran1.nextDouble()*10));//0-1的double数
System.out.println(ran1.nextFloat());//0-1的float数
System.out.println(ran1.nextBoolean());//true

5.String 类// 修改后就创建了一个新的对象,原来的对象不会被改变 除非用StringBuffer

length() 获取字符串长度
equals() 比较字符串内容,重写与Object类
indexOf(String str ) 查找某个字符串第一次出现的位置
indexOf(int num) 根据ascii码表或者unicode码表查找对应数值所对应的字符串在
源字符串中的位置
lastIndexOf(String str) 跟indexOf一样,但是是查找的最后一个字符串
lastIndexOf(int num) 跟indexOf一样,但是是查找的最后一个字符串
subString(int beginIndex)表示从指定位置截取到字符串末尾
subString(int beginIndex , endIndex)表示从开始截取到指定结束位置,包前不包后
trim()去除字符串首位的空格
split(String str)根据指定的内容分割字符串,返回值是一个字符串数组,str不输出
contains(String str)查看源字符串是否包含某一个字符串,是返回true,否返回false
endsWith(Strinig str)判断字符串是否已str结尾
startsWith(String str)判断字符串是否已str开头
replace(String oldStr,String newStr)将oldStr替换为newStr
replaceAll(String regx,String newStr)根据正则表达式将匹配到的内容替换为newStr
concat(String str)将源字符串与str拼接,与 + 号拼接字符串效果一样
toLowerCase()将字符串转为小写
toUpperCase()将字符串转为大写
equalsIgnoreCase() 忽略大小写比较字符串内容
toCharArray()将字符串转换为char数组
charAt(int index)返回index下标对应的字符,char
getBytes()将字符串转换为byte数组

6.常量池

整型的包装类和Character 包装类取值在byte 内将不会产生新的对象,所以我们 使用比较为true,也是比较地址,String
类型首次直接赋值创建对象,会将字符 串内容存入常量池中,第二次创建相同内容的字符串将不会产生新的对象,所以
使用
比较两个直接赋值并且内容一样的字符串,也为true

byte(-128~127)
    Character ch3 = 128;
		Character ch4 = 128;
		System.out.println(ch3 == ch4);

7.StringBuffer&StringBuilder

String类是不可变的对象,所以当我们需要频繁的修改字符串的内容,推荐使用StringBuffer或者StringBuilder

面试题:
StringBuffer和StringBuilder区别?

前者是线程安全的 效率低 先有的 since JDK1.0 后者是线程不安全的 效率高 后有的 JDK1.5

StringBuffer sb1 = new StringBuffer();
		System.out.println("逻辑容量" + sb1.capacity());
		System.out.println("实际长度" + sb1.length());
		sb1.append(false);//添加内容
		sb1.append("abcd");
		sb1.append(20);
		sb1.append(20.0);
		System.out.println("改变内容以后的sb1" + sb1);
逻辑容量16
实际长度0
改变内容以后的sb1falseabcd2020.0
8.System类
1.System.err.println("打印出来的是红色的字体")2.System.currentTimeMillis();//获取系统时间毫秒数
3.System.gc();//垃圾回收机制
4.System.exit(0);//0表示正常退出,非零表示非正常退出

9.Runtime

// Runtime 运行时
// 此类提供了一些关于程序运行过程中信息获取的方法
// 比如 内存大小等 
System.out.println("JVM最大内存" + Runtime.getRuntime().maxMemory() / 1024 / 1024 );
		
System.out.println("JVM空闲内存" + Runtime.getRuntime().freeMemory() / 1024 / 1024);
		
System.out.println("JVM总内存" + Runtime.getRuntime().totalMemory() / 1024 / 1024);

10. java.util.Date类

Date类提供一些用于获取时间相关信息的方法,大多数已经弃用,不推荐使用,可以用

  Date date = new Date();
		System.out.println(date);
输出结果:Mon Aug 24 15:38:03 CST 2020
System.out.println("一个月中的第几天" + date3.getDate());
		System.out.println("一周中的第几天" + date3.getDay());
		System.out.println("月份,要加1" + date3.getMonth());
		System.out.println("小时" + date3.getHours());
		System.out.println("分钟" + date3.getMinutes());
		System.out.println("秒钟" + date3.getSeconds());

11.SimpleDateFormat类//使用类的方法很简单,直接类名 new 类 的方式,如 person 类

     person person = new person()
本类可以将日期格式化
Date date = new Date();
SimpleDateFormat   sdf  = new SimleDateFormat("yyyy/MM/dd  HH:mm:ss");
System.out.println(sdf.format(date));

12.Calendar类(日历)

本类也可以获取时间的相关信息,本类不能直接实例化

// Calendar 日历
		Calendar cal = Calendar.getInstance();
		System.out.println("一个月中的第几天" + cal.get(Calendar.DATE));
		System.out.println("一周中的第几天" + cal.get(Calendar.DAY_OF_WEEK));
		System.out.println("第几个周几" + cal.get(Calendar.DAY_OF_WEEK_IN_MONTH));
		System.out.println("月份" + cal.get(Calendar.MONTH));
		System.out.println("小时" + cal.get(Calendar.HOUR));
		System.out.println("分钟" + cal.get(Calendar.MINUTE));
		System.out.println("秒钟" + cal.get(Calendar.SECOND));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zyf_fly66

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值