Day4 Java学习日记
程序员文章站
2022-07-14 19:49:13
...
Day4 2019.11.4
面向接口编程
- 开发系统时,主体构架使用接口,接口构成系统的骨架
- 这样就可以通过更换接口的实现类来更换系统的实现
例子
1.Introduceable.java
访问权限控制
- 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
上一篇: 数据结构学习笔记:单链表反转
下一篇: java从字符串中删除指定字符