{ switch(s[i]) {
case 春季: //case Season. 春季 编译错
System.out.println(“ 春困”); break;
case 夏季:
System.out.println(“ 夏打盹”); break;
case 秋季:
System.out.println(“ 秋乏”); break;
case 冬季:
System.out.println(“ 睡不够的冬三月”); break; }
}
}
}
数组的高级应用
- 要导入
import java.util.Arrays;
- 排序方法和binarySearch前提是数组不能为降序可以是无序或者升序
int i=Arrays.binarySearch(a1,3);
返回3这个元素出现第一次的下标Arrays.fill(c,4);
将数组c填充满4
字符串的高级应用
-
StringBuilder:线程不同步不安全但执行效率更高
-
StringBuffer
正则表达式
-
正则匹配步骤:
Pattern p=Pattern.compile(reg1);//reg1为模式串正则表达式
Matcher m=p.matcher(str);//str是待匹配串
m.group();m.find;m.start()
String[ ] split(String regex)
regex 是分隔串,也可以是正则表达式 作用:分割字符串,生成数组
String s=“aa,bb,cc,dd”;
String[] sa=s.split(","); //以 , 作为s的分隔串,提取字符串
for(String s1:sa)
System.out.println(s1);
String replaceFirst(String regex, String rp)
作用:用rp 替换regex 的首次出现String replaceAll(String regex, String rp)
作用:用rp 替换regex
随机数类
//要导入java.util.Random
Random r=new Random();
int x,i;
for(i=1;i<=10;i++){
x=r.nextInt(10)+1;//默认从0开始,要获取从1-10的就要+1
System.out.println(x);
}
面向对象程序设计
对象和对象引用
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
的内存管理
- 栈(自动管理机制)
- 栈空间中的数据被系统自动管理即在函数调用时自动创建数据空间,在函数运行结束时自动释放数据空间
- 函数中定义的所有变量无论是基本类型还是引用类型均存储于栈空间
- 堆(手动管理机制)
- 实现按需分配或释放
- 所有对象均存储于堆空间
- 构造函数
- 与类同名,不用定义返回值类型,也没有return 语句,即使无返回值,也不能用void 声明
- 使用new 实例化对象时,系统根据给出的 参数表调用对应的构造函数。这就是构造函数重载
- 构造代码块
- 作用:对所有对象进行统一初始化
- 特点:
对象一建立就执行并且优于构造函数执行
class Person {
private String name;
private int age;
{ age=15; }//构造代码块
Person() {
System.out.println(“A:name=”+name+",age="+age);}
Person(String n) {
name=n;
System.out.println(“B:name=”+name+",age="+age);
}
}
对象的销毁
- 常量final
- 常量引用不可更改即指向某一对象不可更改,但是指向对象的内容可以修改
- 注意如果是string或者数组等引用一定在堆里面还要指向一个最终的数据
- a=b是a指向b指向的对象
- ==判别地址是否相同
- a.equals(b)判断内容是否相同
- 对象数组
- new String[10] 不是创建String 类对象(而是数组 对象 ),因此未调用String 的构造函数。
- sa[0] 是String 引用,不是String 对象,sa[0]指向的那个才是string对象
继承
- 对于超类的私有成员拥有但不能使用
- 构造对象时,会自动调用该类与超类的构造函 数,调用次序与派生次序相同
- 若超类有非private的
无参构造函数
,子类则自动调用
;若超类是有参构造函数
,则子类构造函数中必须显式调用超类的构造函数
,否则编译错
单例模式
class Student{
String name;
int age;
private Student(){}
public static Student creat(){//一定是static这样可以通过类名调用
Student a=new Student();//在方法中new
return a;
}
}
Student st=Student.creat();
System.out.println(st.age);
多态
- 意义:一名多义
- 重载(编译时决定静态绑定)同一个对象同一个方法的参数不同
- 狗1.嗅(主人气味 q); 狗1.嗅(骨头气味 q); ……
- 注意
重载传参
时,如果是基本类型数据可以强制转换大的可以转换成小的,但是小的不能转换成大的 - 重写(运行时决定 动态绑定)不同对象同一个行为的实质不同
义:一名多义 - 重载(编译时决定静态绑定)同一个对象同一个方法的参数不同
- 狗1.嗅(主人气味 q); 狗1.嗅(骨头气味 q); ……
- 注意
重载传参
时,如果是基本类型数据可以强制转换大的可以转换成小的,但是小的不能转换成大的 - 重写(运行时决定 动态绑定)不同对象同一个行为的实质不同