流程控制
switch_case:
switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。
如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。
如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句则会跳出判断。
String:
- String类的内存模型
- Java中,==比较的是栈里的值。equals()比较堆里的值。
- String str = “str” 优化内存。常量池
- String 类是最终类,不能被继承。
- String 类不是基本数据类型,它是一个引用类型。默认值是null。特殊:不需要用new。
- String类常用方法
- charAt() 截取一个字符
- length() 字符串的长度
- getBytes() 将字符串变成一个byte数组
- **equals() 和 equalsIgnoreCase() **比较两个字符串是否相等,前者区分大小写,后者不区分
- startsWith() 和 endsWith() 判断字符串是不是以特定的字符开头或结束
- concat() 连接两个字符串 +
- substring() 截取字符串【包前不包后】
- indexOf() 和lastIndexOf() 前者是查找字符或字符串第一次出现的下标,后者是查找字符或字符串最后一次出现的地方
- compareTo() 和compareToIgnoreCase() 按字典顺序比较两个字符串的大小,前者区分大小写,后者不区分
- replace() 替换指定字符
- split() 按指定字符切割
- StringBuffer和StringBuilder
- 场景:因为String是常量,每次修改其值都需要重新在堆内存中开辟新空间。这样再频繁对变量进行赋值操作时就会导致内存浪费。所以再需要**频繁对变量值进行修改**的时候,可以使用StringBuffer和StringBuilder。
- StringBuffer上的主要操作是append和insert方法,将字符追加或插入到字符缓冲区中。append方法始终将字符添加到缓冲区的末端,而insert方法则在指定的位置添加字符。
- StringBuilder 相较于 StringBuffer 有速度优势。
- 在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
- Date类
- Date类在java.util.Date中。是进行日期操作的类。Date类API
Date now = new Date();//获得当前时间
Date now = new Date(long millisec)//参数是从1970年1月1日起的毫秒数
- 使用SimpleDateFormat类对日期类型进行格式化,形成字符串。
public static void main(String[] args) {
Date now = new Date(); // 创建一个Date对象,获取当前时间
// 指定格式化格式
SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月dd日 HH点mm分ss秒");
System.out.println(f.format(now)); // 将当前时间袼式化为指定的格式
}