this: 代表当前类的对象
super:代表父类对象
this():调用的是当前类的无参构造方法
super():调用的是父类无参构造方法
重载和重写的区别:重载发生在一个类里面,重写发生在父类和子类之间
接口:接口是一个纯粹的抽象类,接口里面的方法都是抽象方法
接口和抽象类的区别:
1.首先接口和抽象类都不能被实例化,用于被其他类实现和继承。
2.接口和抽象类都可以包含抽象方法,实现接口或抽象类的普通子类都必须实现这些抽象方法
3.接口里只能包含抽象方法,静态方法和默认方法(加default),不能为普通方法提供方法实现,但是抽象类可以完全包含普通方法,接口中的普通方法默认为抽象方法。
4.抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的,并且必须赋值。
5.接口里不能包含初始化块,但抽象类里完全可以包含初始化块
6.一个类只能继承一个抽象类,但是一个类却可以实现多个接口
final修饰类,修饰方法,修饰变量有什么特点?
final变量:这个变量就不能被修改(常量)
final类:这个类就不能被继承
final方法:这个方法就不能被重写
//双引号直接写叫字符串常量
//String str1 = “abc” (放在串池里,后面在定义同样的内容会直接地址指向它)
== 和 equals 的区别:
== 比较的是变量指向的对象的地址值
equals比较字符串的内容是不是相等
String、StringBuffer、StringBuilder异同点:
相同点:都是final类,都不能被继承
不同点:String长度是不可改变的,StringBuffer、StringBuilder长度是可变的。
StringBuffer是线程安全(需要加锁、效率低)、StringBuilder是线程不安全(没有加锁、效率高)。
//StringBuffer、StringBuilder都是处理String的容器
//字符串转换成字符数组
//String str = “java AndroidA”
char []chars = str.toCharArray();
//""空字符串
//初始化字符串
String str1 = “”;
//System.out.println(“”.isEmpty());
//str.tocharArray().var
//操作数组的工具类—打印数组
System.out.println(Array.toString(chars));
包装数据类型 和 基本数据类型之间的转换:装箱和拆箱
包装数据类型和字符串之间的转换:
把基本数据类型转换成字符串:
1.基本数据类型 + “” :;// String str = 12 + “”;
2.基本数据类型的包装数据类型toString();//String str2 = Double.toString(3.14);
把字符串转换成基本数据类型:
1.
Integer.parseInt(String str);Double,parseDouble(String str);Boolean.parseBoolean(String str);
//int i = Integer.parseInt("23");
//double d = Double.parseDouble("3.14");
//boolean bool = Boolean.parseBoolean("true");
new对象:Integer integer = new Integer (String str);
//Integer integer = new Integer ("4");
//int i = integer.intValue();
ArrayList(可增长数组)(有序可重复)
Array必须要定义长度之后再放里面输入数据,而ArrayList不需要定义长度就可以输入数据
ArrayList<> list = new ArrayList<>();
往ArrayList里面添加数据
list.add();
ArrayList 和 LinkList的大致区别如下:
1.ArrayList是实现了基于动态数组的数据结构,LinkList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkList,因为LinkList要移动指针。
3.对于新增和删除操作add和remove,LinkList比较占优势,因为ArrayList要移动数据;
Set(无需且输入的元素不能重复)
HashSet set = new HashSet<>();
set不能保证输出的顺序和输入的数需一致
Map:键值对(和查字典类似)
Map
Map map = new HashMap<>();
//map.put("CN",中国);
//map.put("US",美国);
//map.put("UK",英国);
//Set> entrySet = map.entrySet();
//for (Map.Entryentry: entrySet) {// String key = entry.getKey();// String value = entry. getValue();// System.out.println("key:"+key+", value: "+value);
//}
//String value = map.get("CN");
//System.out.println("value: "+value);
//**entry里面的K不能重复**
//map.put("CN",中国);
//map.put("US",美国);
//map.put("UK",英国);
//Set> entrySet = map.entrySet();
Iterator> interator = entrySet.interator(); //迭代器
while (iterator.hashNext()) {
Map.Entry entry = iterator.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println("key: "+key+", value:"+value);
}
SetketSet = map.keySet();
Iteratoriter = keySet.iterator();
while (iter.hasNext()) {String key = iter.next();String value = map.get(key);System.out.println("key: "+key+", value: " + value);
}
i++和++i
i++: 先对i进行调用,最后在对i进行加1
++i: 先对i进行加1,再对进行调用
上一篇:Python识别垃圾邮件
下一篇:Spring之AOP理解及使用