摘要: ArrayList是动态数组的数据结构实现,查找和遍历的效率较高; LinkedList 是双向链表的数据结构,增加和删除的效率较高; 阅读全文
posted @ 2023-05-17 21:42 cnetsa 阅读(17) 评论(0) 推荐(0) 编辑
摘要: HashSet实际上是一个HashMap实例,数据存储结构都是数组+链表。 HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的key上面,而value都是一个统一的对象PRESENT。 private static final Object PRESENT = 阅读全文
posted @ 2023-05-17 21:42 cnetsa 阅读(23) 评论(0) 推荐(0) 编辑
摘要: (1)HashSet HashSet是set接口的实现类,set下面最主要的实现类就是HashSet(也就是用的最多的),此外还有LinkedHashSet和TreeSet。HashSet是无序的、不可重复的。通过对象的hashCode和equals方法保证对象的唯一性。HashSet内部的存储结构 阅读全文
posted @ 2023-05-17 21:41 cnetsa 阅读(12) 评论(0) 推荐(0) 编辑
摘要: HashMap是线程不安全的,HashTable是线程安全的; HashMap中允许键和值为null,HashTable不允许; HashMap的默认容器是16,为2倍扩容,HashTable默认是11,为2倍+1扩容; 阅读全文
posted @ 2023-05-17 21:41 cnetsa 阅读(17) 评论(0) 推荐(0) 编辑
摘要: (1)List简介 实际上有两种List:一种是基本的ArrayList,其优点在于随机访问元素,另一种是LinkedList,它并不是为快速随机访问设计的,而是快速的插入或删除。ArrayList:由数组实现的List。允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。Lin 阅读全文
posted @ 2023-05-17 21:40 cnetsa 阅读(45) 评论(0) 推荐(0) 编辑
摘要: (1)Collection是最基本的集合接口,Collection派生了两个子接口list和set,分别定义了两种不同的存储方式。 (2)Collections是一个包装类,它包含各种有关集合操作的静态方法(对集合的搜索、排序、线程安全化等)。 此类不能实例化,就像一个工具类,服务于Collecti 阅读全文
posted @ 2023-05-17 21:39 cnetsa 阅读(33) 评论(0) 推荐(0) 编辑
摘要: (1)Collection ① set HashSet、TreeSet ② list ArrayList、LinkedList、Vector (2)Map HashMap、HashTable、TreeMap 阅读全文
posted @ 2023-05-17 21:39 cnetsa 阅读(32) 评论(0) 推荐(0) 编辑
摘要: byte的范围是-128~127。 字节长度为8位,最左边的是符号位,而127的二进制为01111111,所以执行+1操作时,01111111变为10000000。 大家知道,计算机中存储负数,存的是补码的兴衰。左边第一位为符号位。 那么负数的补码转换成十进制如下: 一个数如果为正,则它的原码、反码 阅读全文
posted @ 2023-05-17 21:38 cnetsa 阅读(95) 评论(0) 推荐(0) 编辑
摘要: new clone() 通过反射机制创建 //用 Class.forName方法获取类,在调用类的newinstance()方法Class<?> cls = Class.forName("com.dao.User");User u = (User)cls.newInstance(); 序列化反序列化 阅读全文
posted @ 2023-05-17 21:37 cnetsa 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 接口和抽象类都遵循”面向接口而不是实现编码”设计原则,它可以增加代码的灵活性,可以适应不断变化的需求。下面有几个点可以帮助你回答这个问题:在 Java 中,你只能继承一个类,但可以实现多个接口。所以一旦你继承了一个类,你就失去了继承其他类的机会了。 接口通常被用来表示附属描述或行为如: Runnab 阅读全文
posted @ 2023-05-17 21:31 cnetsa 阅读(21) 评论(0) 推荐(0) 编辑
摘要: (1)重载是多态的集中体现,在类中,要以统一的方式处理不同类型数据的时候,可以用重载。 (2)重写的使用是建立在继承关系上的,子类在继承父类的基础上,增加新的功能,可以用重写。 (3)简单总结: 重载是多样性,重写是增强剂;目的是提高程序的多样性和健壮性,以适配不同场景使用时,使用重载进行扩展;目的 阅读全文
posted @ 2023-05-17 21:30 cnetsa 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 在了解什么是 Java 内存模型之前,先了解一下为什么要提出 Java 内存模型。 之前提到过并发编程有三大问题 CPU 缓存,在多核 CPU 的情况下,带来了可见性问题操作系统对当前执行线程的切换,带来了原子性问题译器指令重排优化,带来了有序性问题为了解决并发编程的三大问题,提出了 JSR-133 阅读全文
posted @ 2023-05-17 21:29 cnetsa 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 1. javabean属性命名尽量使用常规的驼峰式命名规则2. 属性名第一个单词尽量避免使用一个字母:如eBook, eMail。3. boolean属性名避免使用 “is” 开头的名称4. 随着jdk, eclipse, spring 等软件版本的不断提高, 底版本的出现的问题可能在高版本中解决了 阅读全文
posted @ 2023-05-17 21:28 cnetsa 阅读(14) 评论(0) 推荐(0) 编辑
摘要: JavaBean 类必须是一个公共类,并将其访问属性设置为 publicJavaBean 类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器,此构造器也应该通过调用各个特性的设置方法来设置特性的缺省值。一个javaBean类不应有公共实例变量,类变量都为private持有值应该通过一组存取 阅读全文
posted @ 2023-05-17 21:25 cnetsa 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 静态变量属于类本身,在类加载的时候就会分配内存,可以通过类名直接访问; 非静态变量属于类的对象,只有在类的对象产生时,才会分配内存,通过类的实例去访问; 静态方法也属于类本身,但是此时没有类的实例,内存中没有非静态变量,所以无法调用。 阅读全文
posted @ 2023-05-17 21:23 cnetsa 阅读(53) 评论(0) 推荐(0) 编辑
摘要: (1)强引用 Java中默认声明的就是强引用,比如: Object obj = new Object();obj = null;只要强引用存在,垃圾回收器将永远不会回收被引用的对象。如果想被回收,可以将对象置为null; (2)软引用(SoftReference) 在内存足够的时候,软引用不会被回收 阅读全文
posted @ 2023-05-17 21:22 cnetsa 阅读(14) 评论(0) 推荐(0) 编辑
摘要: (1)String String是不可变对象,每次对String类型的改变时都会生成一个新的对象。 (2)StringBuilder 线程不安全,效率高,多用于单线程。 (3)StringBuffer 线程安全,由于加锁的原因,效率不如StringBuilder,多用于多线程。 不频繁的字符串操作使 阅读全文
posted @ 2023-05-17 21:21 cnetsa 阅读(16) 评论(0) 推荐(0) 编辑
摘要: Java中Object有一个方法: public native int hashcode(); (1)hashcode()方法的作用 hashcode()方法主要配合基于散列的集合一起使用,比如HashSet、HashMap、HashTable。 当集合需要添加新的对象时,先调用这个对象的hashc 阅读全文
posted @ 2023-05-17 21:20 cnetsa 阅读(22) 评论(0) 推荐(0) 编辑
摘要: NullPointerException:空指针异常;SQLException:数据库相关的异常;IndexOutOfBoundsException:数组下角标越界异常;FileNotFoundException:打开文件失败时抛出;IOException:当发生某种IO异常时抛出;ClassCas 阅读全文
posted @ 2023-05-17 21:19 cnetsa 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-05-17 21:09 cnetsa 阅读(13) 评论(0) 推荐(0) 编辑