2021年9月1日
- 不会初始化子类的几种
1. 调用的是父类的static方法或者字段
2.调用的是父类的final方法或者字段
3. 通过数组来引用
- 子类不可以继承父类的构造方法,只可以调用父类的构造方法。子类中所有的构造函数都会默认访问父类中的空参数构造函数,这是因为子类的构造函数内第一行都有默认的super()语句。super()表示子类在初始化时调用父类的空参数的构造函数来完成初始化。
- java中源文件的后缀为.java,经过javac.exe编译后生成字节码文件,后缀为.class,再经过java.exe编译为可执行文件,后缀为.exe。
-
length 返回当前长度
如果字符串长度没有初始化长度大,capacity(容量)返回初始化的长度
如果append后的字符串长度超过初始化长度,capacity返回增长后的长度
-
off-heap叫做堆外内存,将你的对象从堆中脱离出来序列化,然后存储在一大块内存中,这就像它存储到磁盘上一样,但它仍然在RAM中。
对象在这种状态下不能直接使用,它们必须首先反序列化,也不受垃圾收集。 -
java程序内存泄露的最直接表现是
程序抛内存控制的Exception OutOfMemoryExpection
- ThreadLocalMap中使用开放地址法来处理散列冲突,而HashMap中使用的是分离链表法。之所以采用不同的方式主要是因为:在ThreadLocalMap中的散列值分散得十分均匀,很少会出现冲突。并且ThreadLocalMap经常需要清除无用的对象,使用纯数组更加方便。
-
java.util.concurrent.ConcurrentHashMap 线程安全
java.util.Map 接口
java.util.TreeMap
java.util.SortedMap 接口
java.util.Hashtable 线程安全
java.util.HashMap -
所谓 volatile的措施,就是
1. 每次从内存中取值,不从缓存中什么的拿值。这就保证了用 volatile修饰的共享变量,每次的更新对于其他线程都是可见的。
2. volatile保证了其他线程的立即可见性,就没有保证原子性。
3.由于有些时候对 volatile的操作,不会被保存,说明不会造成阻塞。不可用与多线程环境下的计数器。
-
首先final声明的方法是不能被覆盖的,但是这里并不错误,因为方法是private的,也就是子类没有继承父类的run方法,因此子类的run方法跟父类的run方法无关,并不是覆盖。new Car().run()也是调用子类的run方法。 -
数组是一个对象,不同类型的数组具有不同的类
-
被static修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效,所以static不能修饰局部变量
-
java,exe是java虚拟机
javadoc.exe用来制作java文档
jdb.exe是java的调试器
javaprof,exe是剖析工具
-
ResultSet跟普通的数组不同,索引从1开始而不是从0开始
-
隐藏域在页面中对于用户是不可见的,在表单中插入隐藏域的目的在于收集或发送信息,以利于被处理表单的程序所使用。浏览者单击发送按钮发送表单的时候,隐藏域的信息也被一起发送到服务器。
2021年9月6日
- 由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/"。如果想替换的只是".",那么久要写成"\\.".
-
在java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个:
1.给对象赋值为null,以下没有调用过。
2.给对象赋了新的值,重新分配了内存空间。
-
服务器端:ServerSocket提供的实例 ServerSocket server = new ServerSocket(端口号)
客
-
户端:Socket提供的实例 Socket client = new Socket(IP地址,端口号)
Object
- 线程同步:喂,SHE
喂(Vector)
S(Stack)
H(hashtable)
E(enumeration)
Collection
-----List
-----LinkedList 非同步
----ArrayList 非同步,实现了可变大小的元素数组
----Vector 同步
-----Set 不允许有相同的元素
Map
-----HashTable 同步,实现一个key--value映射的哈希表,key和value都不允许出现null值
-----HashMap 非同步,
-----WeakHashMap 改进的HashMap,实现了“弱引用”,如果一个key不被引用,则被GC回收
注:
List接口中的对象按一定顺序排列,允许重复
Set接口中的对象没有顺序,但是不允许重复
Map接口中的对象是key、value的映射关系,key不允许重复
- 抽象类中的抽象方法和非抽象方法在不加修饰符的情况下,都是默认的default
- DBMS 中实现事务持久性的子系统是(恢复管理子系统)
- A和B中long和float,正常定义需要加l和f,但是long和float属于基本类型,会进行转化,所以不会报出异常。
2021年9月7日
-
匿名内部类的创建格式为: new 父类构造器(参数列表)|实现接口(){
//匿名内部类的类体实现
}
-
使用匿名内部类时,必须继承一个类或实现一个接口
匿名内部类由于没有名字,因此不能定义构造函数
匿名内部类中不能含有静态成员变量和静态方法 - 有四种方法可以实现会话跟踪技术:URL重写、隐藏表单域、Cookie、Session。
-
2021年9月8日
-
接口中的变量默认是public static final 的,方法默认是public abstract 的
-
运行异常,可以通过java虚拟机来自行处理。非运行异常,我们应该捕获或者抛出
-
Map集合类 key value HashMap 允许为null 允许为null TreeMap 不允许为null 允许为null ConcurrentMap 不允许为null 不允许为null HashTable 不允许为null 不允许为null
2021年10月6日
- Java一共有四种权限,private (私有),public(公有)。Protected(受保护)还有友好型。
- 在java里,这些语句都可以修饰类中的成员变量和方法,但是只有public和友好型可以修饰类。
2021年10月15日
-
Java的执行代码具有相应的顺序,其主要可以概括为以下一条链条:
父类静态变量--》父类静态代码块--》--》子类静态变量--》子类静态代码块--》父类非静态变量--》父类非静态代码块--》
父类构造方法--》子类非静态变量--》子类非静态代码块--》子类构造方法
2021年10月18日
- ArrayList list = new ArrayList(20);中的list扩充几次?0次, 初始化分配