匿名内部类能不能继承接口/类
匿名内部类只能实现一个类或接口,在创建的时候直接继承或实现某个接口
Math.round()
- Round(11.5) = 12
- Round(-11.5) = -11
面向对象特征
继承、封装、多态
多态的特质
概念 : 一个行为具有多个不同表现形式或形态的能力,既同一个接口,使用不同实例而执行不同操作
继承,重写,向上转型
SubString()
substring (x,y) 包含x,不包含y 从索引0开始
StirngBuffer 和StringBui
- 运行速度 : StringBuilder > StringBuffer > String
- 安全: StringBuffert是线程安全,有synchronized关键字,共享缓冲区的时候
- 适用: Stringbuffer适合多线程 StringBuilder 适合单线程
Redis存储类型
字符串,哈希(键值对),列表(头尾),集合(Set无序),有序集合(sorted set,通过分数来从小到大排序,分数可以重复)
String str = new String(“xyz”);创建了几个对象 ?
2个,New的话会在内存(不是字符串常量池)上创建新的String 对象
原因:先在常量池查找或创建一个字符串常量,然后再内存new一个新的
HashMap 和 HashTable 区别
- Map可以有null,table不行
- Map非线程安全,table线程安全有synchronize 同步
- 继承的类不一样 AbstractMap(HashMap) Dictionary(table)
- Map没有contains()方法
- Map是通数组+链表+红黑树,采用哈希表存储的
Vector 和 ArrayList区别
- Vector方法都是同步,安全
- ArrayList性能比Vecotr好
- 当元素超过大小,Vector翻倍,ArrayList增加一半,所以ArrayList更节省空间
ArrayList 和 LinkedList
- 从后面添加数据,而不是前后或中间,并且随机访问元素时选Arraylist
- 前面或中间添加,按照顺序访问选LinkedList
遍历Map
- 第一种
Set set = map.keySet();
Iterator it = set.iterator();
while(it.hasNext()){
String str = it.next().toString();
}
- 第二种
for(Entry<String,String> entry : map.entrySet()){
String strkey = entry.getKey();
String strval = entry.getValue();
}
String
- 不能被继承,因为被final修饰,创建之后不能被更改
父子类加载顺序
父类静态代变量、
父类静态代码块、
子类静态变量、
子类静态代码块、
父类非静态变量(父类实例成员变量)、
父类构造函数、
子类非静态变量(子类实例成员变量)、
子类构造函数
总结: 静态变量、代码块、非静态变量、构造函数
抽象类和接口
- 抽象类可以没有抽象方法,有抽象方法的类必须是抽象类
- 抽象方法要被实现,不能是静态的,也不能私有
- 如果子类没有实现抽象父类的所有抽象方法,那么他也是个抽象类
栈内存溢出
如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常。 如果虚拟机在动态扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常
tomcat配置信息
Xms128 JVM初始分配的堆内存 一般为物理内存的1/64
Xmx512m JVM最大允许分配的内存 一般为物理内存你的1/4
XX:PermSize=64M JVM初始分配的非堆内存
XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配
堆内存程序员可以利用,非堆的就是jvm使用的
修改catalina文件
冒泡算法
int[] arr={6,3,8,2,9,1};
for(int i=0;i<arr.length-1;i++){//外层循环控制排序趟数
for(int j=0;j<arr.length-1-i;j++){//内层循环控制每一趟排序多少次
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
多线程实现方式
- 实现Runable接口
- 继承Thread类
线程的生命周期
新建,可运行,运行中,睡眠,阻塞,等待,死亡
Sleep 和 wait
Sleep依旧持有锁,并在指定时间自动唤醒,wait的话释放锁
Java读取文件输出到浏览器下载的过程
io流的,待补充