一、二维数组
1、定义:
。所谓的二维数组就是在数组中存放数组
。外层数组中存储的是数组的引用
2、初始化
。静态初始化
。先指定数组中的内容,长度由jvm自定判断
。数据类型【】【】 数组名 = new 数组类型【】【】{{元素,
元素},{元素,元素}}
。数据类型【】【】数组名 = {{元素,元素},{元素,元素}}
。动态初始化
。先指定数组的长度,jvm会给数组附上默认值
。数据类型【】【】数组名 = new 数组类型【数组的长度】【数
组的长度】
3、演示
public static void main(String[] args){
int [][] arrs = {{2,3},{3,5},{3,4}};
for(int i = 0; i< arrs.lenrth ; i++){
//获取一个子数组,变量数组中的内容
for(int j = 0 ;j<arr[i].lenrth ; j++){
System.out.println(arrs[i][j]+ "");
}
System.out.println();
}
}
二、权限修饰符
1、什么是权限修饰符
。权限修饰符是为了确定类或者成员的使用范围
2、java中权限修饰符
。private :本类中
。默认(什么都不写):当前包下(文件夹)都能使用
。protected :本类中,当前包下 ,别的包的子类中(子父类调
用)
。public : 当前项目下任意使用 别的包下任意使用
三、java中的包
1、定义:
。其实就是路径,和电脑中的文件夹一个意思,java中的类名前要加上
包名才是完整的类的路径。记住:java主程序运行的地方就算作根路径
2、导入包
。导入包的两个方式:
。在类的前面写上包名
。使用import关键字在类的上方导入
。注意:如果是用*号导入的话,当前类和导入的包下有相同的类,默认
使用本包下的
3、注意:
。程序中不能出现两个包名类名都相同的类
。无法使用import关键字导入两个名称相同的类,因为编译器无法分清
你到底要用哪个
四、Object类
1、定义:
。所有类的基类/根类
。所有的类都是直接或者间接继承 Object类
2、常用方法
。哈希算法在java中:通过hash算法将java中对象再内存中地址转成
一个数值,便于识别和比较
。hashCode()
.public int hashCode()
.返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来
计算
。不同对象的,hashCode()一般来说不会相同。但是,同一个对象
的hashCode()值肯定相同。
。toString()
。原生的toString方法中到底返回了什么呢?当前对象的类型的全类
名+@+地址值转成的hash值的16进制表现形式
。public String toString()
。返回该对象的字符串表示
。默认的二分法返回的数据一般对我们没有意义,建议重写
。JavaBean中一定要去重写,别的类中重写的概率很低
3、equals()
。比较当前对象和指定对象内容是否“相等”
。默认情况下比较的地址值是否相等、
public static void main(String[] args){
Demo demo1 = new Demo();
Demo demo2 = new Demo();
boolean flg = demo1.equals(demo2);
System.out.println(flg);//结果为false
}
。在我们的日常逻辑中,比较地址值是否相等没有意义,建议重写(重
写之后比较的就是类中的成员变量的值是否一样)
4、==和equals的区别
。==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用
数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
。equals方法是一个方法,只能比较引用数据类型,所有的对象都会继
承Object类中的方法,如果没有重写object类中的equals方法,equals
方法和==号比较引用数据类型无区别,重写后的equals方法比较的是对
象中的属性
。equals()相等的两个对象hashCode()一定相同,equals不等的
两个对象,hashCode()也有可能相同
。建立在equals和hashCode同步重写的情况下
5、getClass()
。public final Class getClass()
。返回此对象的类,可以借由字节码获取到类所有的基础结构属性
。演示获取类名
public static void main(String[] args){
Demo demo = new Demo();
String clazzName = demo.getClass().getName();
Sytem.out.println("clazzName");//结果:com.qianfeng.Demo
}
六、String类
1、定义:
。String类代表字符串。java程序中的所有字符串字面值(如“abc”)
都作为此类的实例实现。我们可以将字符串看做是String,但是严格
意义上来说,String还是一个类,只是比较特殊罢了
2、特殊性:
。String 类型的变量可以引用地址
。String类型的变量可以直接指向常量
。String 对象的长度是不可变的,如果两个字符串拼接成一个字符
串,其实是创建了一个新的字符串对象
public static void main(String[] args){
String str = new String();//指向地址值
String str2 = “abc”;//指向常量
}
3、常用的构造方法
。public String(); 空构造
。public String(byte[ ] bytes);把字节数组转成字符串
。public String(byte [ ] bytes,int index ,int length);把字节数
组的一部分转成字符串
。public String(char[ ] value);把字符数组转成字符串
。public String(String original);把字符常量值转成字符串
4、常用的判断方法
。boolean equals(Object obj);比较字符串的内容是否相同,区分
大小写
。boolean equalslgnoreCase(String str);比较字符串的内容是否
相同,忽略大小写
。boolean contains (String str);判断大字符串中是否包含小字符
串
。boolean startsWith(String str);判断字符串是否已某个指定的字
符串开头
。boolean endsWith(String str);判断字符串是否已某个指定的字
符串结尾
。boolean isEmpty();判断字符串是否为空
。案例
。需求:模拟登录,给三次机会,并提示还有几次
。用户名和密码都是admin
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int i = 1;
while(i<=3){
System.out.println("请输入用户名");
String name = sc.nextLine();
System.out.println("请输入密码");
String password = sc.nextLine();
if("admin".equals(name)&&"admin".equals(password)){
System.out.println("恭喜你,登陆成功");
break;
}
System.out.println("用户名或密码错误,请你重新登录,你还有"+ (3-i)+"次登录机会");
i++;
}
scanner.close();
}
5、常用的获取方法
。int length();获取字符串的长度
。char charAt(int index);获取指定索引位置的字符
。int indexOf(int ch);返回指定字符在此字符串中第一次出现处的索
引,ch是字符的码表值
。int indexOf(String str);返回指定字符串在此字符串中第一次出
现处的索引
。int indexOf(int ch ,int fromIndex);返回指定字符在此字符串中从
指定位置后第一次出现处的索引
。int indexOf(String str , int fromIndex);返回指定字符串在此字符
串中从指定位置后第一次出现处的索引
。int lastIndexOf 同上
。String substring (int start);从指定位置开始复制字符串,默认到
末尾
。String substring(int start , int end);从指定位置开始到指定位置
结束复制字符串
6、常用的转换方法
。byte[ ] getBytes();把字符串转换为字节数组
。char[ ] toCharArray();把字符串转换为字符数组
。static String valueOf(char[ ] chs );把字符数组转换成字符串
。static String valueOf(int i );把int类型的数据转成字符串
。注意:String类的valueOf方法可以把任意类型的数据转成字
符串
。String toLowerCase();把字符串转成小写
。String toUpperCase();把字符串转成大写
。String concat(String str);把字符串拼接
7、替换方法
。String replace(char old ,char new );将字符串中的一部分字符
用新的代替
。String replace(String old ,String new );将字符串中的一部分字
符串用新的代替
8、切割方法
。String[ ] split(String regex);按照规则来切割字符串
。String [ ] split(String regex ,int limit);按照规则来切割字符串
limit表示总共切成几段(也就是数组的长度)
9、其他的方法:
。trim();去除字符串前后的空格
。int compareTO(String anotherString );按字典顺序比较两个字
符串(大小写)
。int compareTolgnoreCase(String str);安字典顺序比较两个字符
串(忽略大小写)