
java se基础
无名草110
人生如逆旅 我亦是行人
展开
-
String类型 堆/字符串池的理解
package test;public class StringTest { public static void main(String[] args) { /** * 创建过程: * 1.检查StringPool(字符串池)里是否有"aaa"对象,这里没有,创建StringPool的字符串对象"aaa" * ...原创 2018-06-03 15:37:38 · 501 阅读 · 0 评论 -
小问题
一.HashMap与Hashtable的区别1.HashMap是线程不安全的,轻量级的;Hashtable是线程安全的,重量级的2.HashMap的key和value可以是null,Hashtable的key和value都不可以为null二.Collection和Collections的区别Collection是一个接口,下面有Set/List等实现Collections是一个工具,里面有很多对于...原创 2018-06-10 16:10:39 · 145 阅读 · 0 评论 -
关于Iterator
1.在迭代过程中,用list来删除元素的坑package test;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class IteratorTest { public static void main(String[] args) { Lis...原创 2018-06-10 16:10:43 · 159 阅读 · 0 评论 -
关于char是否能表示一个中文
char是可以表示中文的这个问题点有3个考核点1 char是多少位的 2 java用的是什么方式表示字符 3 Unicode是用多少位表示的1的答案是16位的,2的答案是Unicode,3的答案是16位值得注意的是,2的答案并不是utf-8Unicode字符集有包含中文,并且char类型和Unicode类型是相同存储长度的所以char是可以表示中文的...原创 2018-06-10 16:10:47 · 7224 阅读 · 0 评论 -
关于多态
package test;public class PoliTest { public static void main(String[] args) { Parent p = new Child(); // 正确,引用指的对象其实是Child类的实例,执行的是Child类的p1方法 p.p1(); // 错误,虽然...原创 2018-06-09 16:45:27 · 167 阅读 · 0 评论 -
关于泛型
1.关于泛型的形式参数package test;import java.util.ArrayList;import java.util.List;public class GenericTest { public void m1(List<Object> list) { } public void m2(List<? extends Obj...原创 2018-06-09 16:32:48 · 142 阅读 · 0 评论 -
&和&&
&&:逻辑二目运算符,2个操作数必须是boolean类型,具有短路特征&:功能有2个(1)位与运算符,二目运算符,这个不做多解释(2)逻辑二目运算符,2个操作数必须是boolean类型,不具备短路特性就是说,&既可以昨晚位运算符,又可以作为逻辑运算符,跟&&的区别是不具有短路特性...原创 2018-06-09 16:10:54 · 154 阅读 · 0 评论 -
ArrayList/LinkedList/Vector
1.ArrayList和Vector的区别是,ArrayList是线程不安全,Vector是线程安全的2.ArrayList与LinkedListArrayList底层用的是数组,便于查询操作,物理地址连续LinkedList底层用的是个双向循环链表,便于删除操作,物理地址不连续3.关于ArrayList当调用无参的方法创建ArrayList时,底层会生成一个长度为10的一个数组。如果加入元素后数...原创 2018-06-09 15:59:59 · 173 阅读 · 0 评论 -
HashSet/HashMap 存取值的过程
HashSet与HashMap的关系:(1)HashSet底层用的就是HashMap原创 2018-06-09 15:43:13 · 4060 阅读 · 0 评论 -
关于HashSet
HashSet存储数据原理:当HashSet调用add方法时,有返回值,返回值是boolean类型,表示是否添加成功(如果对象不存在,则添加成功,否则添加失败)但是,添加的过程并不是一个个去遍历去判断是否已存在,这样效率太低(假设一种场景,有100W数据要放到set里,如果采用这种方法,就会每一次调用add方法,都会要跟集合的元素一一对比)java中是这样添加元素的:(1)首先会对这个对象做一个h...原创 2018-06-09 14:32:43 · 374 阅读 · 0 评论 -
关于数组
1.关于接口类型的数组package test;interface I {}class C implements I{}public class ArrayTest { public static void main(String[] args) { // 是可以编译通过的,数组里存放的其实是对象的地址,而不是对象本身 // 其实这个数组里面...原创 2018-06-09 12:28:18 · 123 阅读 · 0 评论 -
关于try catch块执行流程
代码:package test;public class FinallyTest { public static void main(String[] args) { try { // process try// return;// System.exit(0); } catc...原创 2018-06-09 12:23:35 · 1843 阅读 · 0 评论 -
final关键字
作用:1.作用于类:表示该类不能被继承2.作用于方法:表示该方法不能被重写3.作用于变量:表示原生类型的值不能改变/引用类型的对象内容不能被改变(但是可以指向其他对象)对于功能3,final类型的成员变量初始化方式:1.声明变量时直接赋值2.构造方法完成赋值,如果有多个构造方法,必须每个构造方法都有赋值...原创 2018-06-09 12:18:50 · 126 阅读 · 0 评论 -
关于java方法重写
1.子类的方法与父类中的方法有相同的返回类型,相同的方法名称。相同的参数列表2.子类方法的访问级别不能低于父类方法的访问级别3.子类方法抛出的异常范围不能大于父类中方法抛出的异常范围...原创 2018-06-09 12:05:45 · 157 阅读 · 0 评论 -
对象的克隆(clone方法)
1.深拷贝与浅拷贝浅拷贝是指拷贝对象时仅仅拷贝对象本身(包括对象中的基本变量),而不拷贝对象包含的引用指向的对象。深拷贝不仅拷贝对象本身,而且拷贝对象包含的引用指向的所有对象。2.深拷贝和浅拷贝的实现浅拷贝的实现很简单,直接继承Object类的clone方法就是浅拷贝现在说一下深拷贝,深拷贝一般的做法是把类实现Serializable接口,使得这个类具有序列化特性然后提供深拷贝的方法,先把整个对象...原创 2018-06-10 16:10:34 · 1348 阅读 · 0 评论