Day4 Java学习日记

Day4 2019.11.4

面向接口编程

  • 开发系统时,主体构架使用接口,接口构成系统的骨架
  • 这样就可以通过更换接口的实现类来更换系统的实现

访问权限控制

  • public 均可以访问
  • protected 同包 类内 子类都可以访问
  • default(no modifier)同包和类内访问
  • private 只可以类内访问

Object类和String类

比较两个数的值

  • == 引用类型比较的是地址
  • equals(自动生成) 内容比较

字符符串转数字

如果您要将输入的字符串转换为整型、浮点数等等数据类型,您可以使用以下各包装类别所提供的各个静态剖析方法:

  • Byte.parseByte(字符串) 将字符串剖析为位元
  • Short.parseShort(字符串) 将字符串剖析为short整型
  • Integer.parseInt(字符串) 将字符串剖析为integer整型
  • Long.parseLong(字符串) 将字符串剖析为long整型
  • Float.parseFloat(字符串) 将字符串剖析为float浮点数
  • Double.parseDouble(字符串) 将字符串剖析为double浮点数

注意

如果指定的字符串无法剖析为指定的数据类型数值,则会发生NumberFormatException异常。

Character字符包装类的常用方法

  • static boolean isDigit(char ch)
  • 确定指定字符是否为数字
  • static boolean isLetter(char ch)
  • 确定指定字符是否为字母。
  • static char toLowerCase(char ch)
  • 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写。
  • static char toUpperCase(char ch)
  • 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写。
  • static Character valueOf(char c)
  • 返回一个表示指定 char 值的 Character 实例。

String类

推荐使用equals比较string类型的 不推荐使用==

  • Java中为了给String对象提高效率,所以就为String类提供了字符串池。在StringTest1中就使用了串池。当你重新声明一个String型变量为abc时,将使用串池里原来的那个abc,而不重新分配内存。在str3和str4中使用了普通对象的声明方式,即new关键字,系统将会为str3和str4各分配一块内存。

代码如下:

public class StringTest1{   
public static void main(String[] args) {      
 String str1 = "abc";      
 String str2 = "abc";      
 System.out.println(str1 == str2); 
 String str3 = new String(“abc");      
 String str4 = new String(“abc"); 
 System.out.println(str1 == str3);      
 System.out.println(str3 == str4); 
   }
 } 

string、stringBuilder与stringBuffer区别

  • 字符修改上的区别
  • string:不可变字符序列
  • stringBuffer 可变字符序列、效率低、线程安全
  • stringBuilder 可变字符序列、效率高、线程不安全用(更多使用)
  • 初始化上的区别
  • String可以赋空值,后者不行
  • (1)如果要操作少量的数据使用String
  • (2)多线程操作字符串缓冲区下操作大量数据用StringBuffer
  • (3)单线程操作字符串缓冲区下操作大量数据用StringBuilder

date类(日期转换)

  • 日期格式化输出 SimpleDateFormat
  • java.text.SimpleDateFormat sdf =new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
  • (date -> text)

代码

DateTest.java
public class DateTest {

	public static void main(String[] args) {
		//java.util.Date utilDate;
		//java.sql.Date  sqlDate;

		//得到系统当前时间日期
		java.util.Date utilDate =new Date();
		System.out.println(utilDate);
		//得到日期格式化类
		java.text.SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd HH:mm:ss");
		String strDate=sdf.format(utilDate); //完成将java.util.Date转成字符串
		System.out.println(strDate);
		
		String sDate="2019年11月04 16:12:01";
		java.util.Date strToDate=null;
		try {
			//用日期格式化类将字符串转java.util.Date
			strToDate=sdf.parse(sDate);
			System.out.println(strToDate);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//java.util.Date utilDate;
		long longDate=strToDate.getTime();
		System.out.println(longDate);
				
		//将java.sql.Date转java.util.Date
		java.sql.Date d=new java.sql.Date(longDate);
		//java.util.Date转java.sql.Date
		java.util.Date dd=new java.util.Date(d.getTime());
		
	}

}

运行结果

Tue Nov 05 08:49:26 CST 2019
2019年11月05 08:49:26
Mon Nov 04 16:12:01 CST 2019
1572855121000
2019-11-04
Mon Nov 04 16:12:01 CST 2019

你可能感兴趣的:(Day4 Java学习日记)