Java的常见类

Java.lang.String表示的是字符串类型
a.String 表示的字符串一旦创建,不可改变
b.为了提升字符串的访问效率,使用了缓存技术,java中所有用“双引号”括起来的字符串都会在“字符串常量池”中创建一份.
c.如果程序用到某个字符串,就会到”字符串常量池”中找,如果没有,就在常量池中创建一份
String s1 = “123”;
String s2 = “123”;
System.out.println(s1==s2);//true
String s4 = new String(“hello”);//在常量池中创造一个”hello”,在堆中创建一个String对象

相关的方法
int lastIndexOf(String str),该方法用于返回子字符串在该字符串中最后一次出现的下标。

String substring(int start,int end)
截取字符串,传入的两个参数分别为要截取边界的下标。
在java api 中,通常使用两个数字表示范围时,都是含头不含尾,即包含起始下标对应的内容,但不包含结束下标的处对应的内容。

String trim()
去除一个字符串两边的空白字符(如空格,tab)
char charAt(int index)
返回当前字符串中指定位置的字符

  • boolean startWith(String str)
  • boolean endWith(String str)
  • 判断当前字符串是否是以给定的字符串开始或结束的

String toUpperCase()
String toLowerCase()
将当前字符串中的英文部分转换为全大写或全小写

static String valueOf()
String 提供了若干的静态重载的方法valueOf,可以将java中的其他类型转换为字符串类型
常用于将基本类型转换为字符串类型

1.StringBuffer是一个字符串缓冲区
2.工作原理
预先在内存中申请一块空间,用来容纳字符串的序列,如果预留空间不够用,则进行自动扩容.

StringBuffer和String的区别
* String是不可改变的字符串序列,存储在字符串常量池中
* StringBuffer底层是一个char数组,该char数组可以改变。自动扩容
* Stringbuffer的默认初始化容量是16

  • 3.优化StringBuffer
  • 最好在创建Stringbuffer前,预测长度。然后在创建Stringbuffer的时候
  • 用指定初始化的容量的方式来创建Stringbuffer对象。
  • 减少底层数组的拷贝,提高效率
    StringBuffer sf = new StringBuffer();
    sf.append(“Tom”);
    sf.append(123);
    sf.append(true);

StringBuilder是一个字符串缓冲区
和StringBuffer的区别
StringBuffer是线程安全的(在多线程的环境下使用不会出现问题)
StringBuilder是非线程安全(在多线程的环境下使用可能出现问题)

java.util.Date
1.Date实际是一个包裹类,他包含的是一个长整型的(long)数据
这个数据表示的是从GMT 1970年1月1日00:00:00 000这一刻到现在的毫秒数
2.Date类顾名思义就是一个表示时间的类 ,他的最大作用就是获得当前时间
这个类里面也有一些设置时间以及其他功能
Date date = new Date()//获取当前时间
String日期格式:
* 年 y
* 月 M
* 日 d
* 时 H h
* 分 m
* 秒 s
* 毫秒 S
创建一个格式化对象
SimpleDateFormt sdf = new SimpleDateFormat(“YYYY-MM-dd HH:mm:ss”);
开始格式化
System.out.println(sdf.format(date));
日历类
Calendar c1 = Calendar.getInstance();
int i1 = c1.get(Calendar.DAY_OF_WEEK);
中国的星期天,外国看作第一天,所以要减去1
System.out.println(i1);//1

//查看2008年8月8是星期几
//1.要把字符串对象变成日期对象 解析
String st = “2008-08-08”;
SimpleDateFormat sdf1 = new SimpleDateFormat(“yyyy-MM-dd”);
Date date1 = sdf1.parse(st);
//设置要查询的日期
c1.setTime(date1);
int i3 = c1.get(Calendar.DAY_OF_WEEK);
//中国的星期天,外国看作第一天,所以要减去1
System.out.println(i3);//6 也就是星期五

Calendar和Date的转化
(1) Calendar转化为Date
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();

(2) Date转化为Calendar
Date date=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);

java.lang.Math
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
* Math类被final修饰,不可被继承
* Math类不能被实例化
* Math类提供了很多静态的方法
int a = 1;
int b = 2;

//ceil:向上取整
System.out.println(Math.ceil(1.00000001));

//floor:向下取整
System.out.println(Math.floor(1.99999999));

//round:四舍五入(返回整数)
System.out.println(Math.round(1.0000001));

//random:产生一个随机数[0,1)
System.out.println(Math.random());

//随机产生1到6 六个整数[0,1)*6--> [0,6)+1 --》[1,7)
System.out.println((int)(Math.random()*6+1));

//pow 求幂 返回第一个参数的第二个参数次幂的值
System.out.println((Math.pow(3,2)));

枚举(Enum)
Enum类型默认继承java.lang.Enum而不是object
枚举只能用private修饰,如果省略了构造器的修饰符,则默认为private
可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值