Java学习0118

StringBuilder JDK1.5 线程不安全
StringBuffer JDK1.0 线程安全
String , StringBuffer , StringBuilder区别于联系

  1. String类是不可变类,即一旦一个String对象被创建后,包含子这个对象中的字符序列是不可改变的,直至这个对象销毁。
    2.StringBuffer类则代表一个字符序列可变的字符串,可以通过append , insert , reverse , setCharAt , setLength 等方法改变其内容。一旦生成了最终的字符串,调用toString方法将其转变为String
  2. JDK1.5新增了一个StringBuilder类,与StringBuffer相似,构造方法和方法基本相同。不同的是StringBuffer是线程安全的,而StringBuilder是线程不安全的,所以性能略高。通常情况下,创建一个内容可变的字符串,应该优先考虑使用StringBuilder。
    == 和 equals的区别和联系
    ==:
    a): 基本类型,比较的是值
    b): 引用类型,比较的是地址
    c): 不能比较没有父子关系的两个对象
    Equals:
    a) : 系统类一般已经覆盖了equals(),比较的是内容。
    b) : 用户自定义类如果没有覆盖equals(),将调用分类的equals(比如是Object),而Object的equals的比较是地址(return(this == obj));
    c) : 用户自定义类需要覆盖父类的equals();
    注意:Object 的 == 和 equals 比较的都是地址,作用相同

java.sql.Date java.util.Date
d.toGMTString()//方法名上画杠:(过期方法 废弃方法 ----不建议用)
d.getYear()//当前年份-1990=输出
d.getMonth()//返回值在0~11之间,0是1月
d.getDate()//月份中的某一天,值在0~31之间
d.getDay()//0=Sunday 1=Monday 2=Tuesday 3=Wednesday 4=Thursday 5=Friday 6=Saturday
d.getTime()//返回距 1970年 1月 1日之间的毫秒数
System.currentTimeMillis()//返回距 1970年 1月 1日之间的毫秒数
//常用 原因:不用创建对象,直接调用
java.sql.Date:年月日 java.util.Date:年月日 时分秒
//java.sql.Date
java.sql.Date sqlDate=new java.sql.Date(1610944712012L);//java.sql.Date返回值类型是long,写入数据后+L
//返回 1970年 1月 1日+传入的毫秒数=输出年月日
//String------>java.sql.Date
java.sql.Date valueOf=java.sql.Date.valueOf(“2021-01-18”);//(做项目常用)
java.sql.Date java.util.Date 相互转换(做项目常用)

//java.util.Date----------->java.sql.Date
java.sql.Date sqlDate2=new java.sql.Date(new Date().getTime());
//java.sql.Date----------->java.util.Date
Date date=sqlDate2;//java.sql.Date是java.util.Date的子类

java.sql包下的类
java.sql.Time time=new java.sql.Time(1610944712012L);
System.out.println(time.toGMTString());
java.sql.Timestamp ts=new java.sql.Timestamp(1610944712012L);//时间戳

日期格式化类
DateFormat df=new SimpleDateFormat(“yyyy-MM-dd hh-mm-ss”); //yyyy-MM-dd hh-mm-ss含义:年月日 时分秒,改yyyy/MM/dd也行String------>Date
Date d=df.parse(“2021-01-18 14-30-32”);
System.out.println(d);//d调用toString类型,有自己的打印格式
Date-------->String
String str=df.format(new Date());//获取当前时间
System.out.println(str);//str输出是按照自己new的DateFormat
在这里插入图片描述
Calendar很强大,但我们用的少!
创建一个日历
法1:Calendar cal=Calendar.getInstance();//Calendar是abstract抽象类,用类名.方法名调用
法2:Calendar cal2=new GregorianCalendar();
读取:cal是对象,可以换其他
cal.get(Calendar.YEAR)//年
cal.get(Calendar.MONTH)//月,以此类推
cal.getActualMaximum(Calendar.DATE)//当前月最大的日期
cal.getActualMaximum(Calendar.MONTH)//最大的月份是12月,显示11,1月显示0
cal.getActualMinimum(Calendar.DATE)//当前月最小的日期:1号

设置:cal是对象,可以换其他
cal.set(Calendar.DATE, 16);//修改为16号
cal.set(Calendar.MONTH,3);//修改为4月,从0开始写月
cal.set(Calendar.YEAR,2009);//修改为2009年
String----->Calendar
//String----->Date
String str=“2021-01-18”;
Date valueOf=java.sql.Date.valueOf(str);
//Date-------->Calendar
cal.setTime(valueOf);
输入字符串:
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
Calendar应用
System.out.println(Calendar.MONTH+“月”);//几月
System.out.println(cal.get(Calendar.DAY_OF_WEEK-1)+“号”);//距离1月1号多 少号
System.out.println(“周”+(cal.get(Calendar.DAY_OF_WEEK)-1));//输入号是周几 System.out.println(cal.get(Calendar.DATE));//当月的几号
枚举
枚举和switch结合应用
(1)switch()放:int char byte String 枚举
(2)case后面只能是 枚举下的实例
什么情况下使用枚举?值固定的时候

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值