05 2023 档案

摘要:ArrayList是动态数组的数据结构实现,查找和遍历的效率较高; LinkedList 是双向链表的数据结构,增加和删除的效率较高; 阅读全文
posted @ 2023-05-17 21:42 cnetsa 阅读(22) 评论(0) 推荐(0) 编辑
摘要:HashSet实际上是一个HashMap实例,数据存储结构都是数组+链表。 HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的key上面,而value都是一个统一的对象PRESENT。 private static final Object PRESENT = 阅读全文
posted @ 2023-05-17 21:42 cnetsa 阅读(29) 评论(0) 推荐(0) 编辑
摘要:(1)HashSet HashSet是set接口的实现类,set下面最主要的实现类就是HashSet(也就是用的最多的),此外还有LinkedHashSet和TreeSet。HashSet是无序的、不可重复的。通过对象的hashCode和equals方法保证对象的唯一性。HashSet内部的存储结构 阅读全文
posted @ 2023-05-17 21:41 cnetsa 阅读(19) 评论(0) 推荐(0) 编辑
摘要:HashMap是线程不安全的,HashTable是线程安全的; HashMap中允许键和值为null,HashTable不允许; HashMap的默认容器是16,为2倍扩容,HashTable默认是11,为2倍+1扩容; 阅读全文
posted @ 2023-05-17 21:41 cnetsa 阅读(19) 评论(0) 推荐(0) 编辑
摘要:(1)List简介 实际上有两种List:一种是基本的ArrayList,其优点在于随机访问元素,另一种是LinkedList,它并不是为快速随机访问设计的,而是快速的插入或删除。ArrayList:由数组实现的List。允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。Lin 阅读全文
posted @ 2023-05-17 21:40 cnetsa 阅读(71) 评论(0) 推荐(0) 编辑
摘要:(1)Collection是最基本的集合接口,Collection派生了两个子接口list和set,分别定义了两种不同的存储方式。 (2)Collections是一个包装类,它包含各种有关集合操作的静态方法(对集合的搜索、排序、线程安全化等)。 此类不能实例化,就像一个工具类,服务于Collecti 阅读全文
posted @ 2023-05-17 21:39 cnetsa 阅读(110) 评论(0) 推荐(0) 编辑
摘要:(1)Collection ① set HashSet、TreeSet ② list ArrayList、LinkedList、Vector (2)Map HashMap、HashTable、TreeMap 阅读全文
posted @ 2023-05-17 21:39 cnetsa 阅读(46) 评论(0) 推荐(0) 编辑
摘要:byte的范围是-128~127。 字节长度为8位,最左边的是符号位,而127的二进制为01111111,所以执行+1操作时,01111111变为10000000。 大家知道,计算机中存储负数,存的是补码的兴衰。左边第一位为符号位。 那么负数的补码转换成十进制如下: 一个数如果为正,则它的原码、反码 阅读全文
posted @ 2023-05-17 21:38 cnetsa 阅读(148) 评论(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 阅读(17) 评论(0) 推荐(0) 编辑
摘要:接口和抽象类都遵循”面向接口而不是实现编码”设计原则,它可以增加代码的灵活性,可以适应不断变化的需求。下面有几个点可以帮助你回答这个问题:在 Java 中,你只能继承一个类,但可以实现多个接口。所以一旦你继承了一个类,你就失去了继承其他类的机会了。 接口通常被用来表示附属描述或行为如: Runnab 阅读全文
posted @ 2023-05-17 21:31 cnetsa 阅读(26) 评论(0) 推荐(0) 编辑
摘要:(1)重载是多态的集中体现,在类中,要以统一的方式处理不同类型数据的时候,可以用重载。 (2)重写的使用是建立在继承关系上的,子类在继承父类的基础上,增加新的功能,可以用重写。 (3)简单总结: 重载是多样性,重写是增强剂;目的是提高程序的多样性和健壮性,以适配不同场景使用时,使用重载进行扩展;目的 阅读全文
posted @ 2023-05-17 21:30 cnetsa 阅读(109) 评论(0) 推荐(0) 编辑
摘要:在了解什么是 Java 内存模型之前,先了解一下为什么要提出 Java 内存模型。 之前提到过并发编程有三大问题 CPU 缓存,在多核 CPU 的情况下,带来了可见性问题操作系统对当前执行线程的切换,带来了原子性问题译器指令重排优化,带来了有序性问题为了解决并发编程的三大问题,提出了 JSR-133 阅读全文
posted @ 2023-05-17 21:29 cnetsa 阅读(28) 评论(0) 推荐(0) 编辑
摘要:1. javabean属性命名尽量使用常规的驼峰式命名规则2. 属性名第一个单词尽量避免使用一个字母:如eBook, eMail。3. boolean属性名避免使用 “is” 开头的名称4. 随着jdk, eclipse, spring 等软件版本的不断提高, 底版本的出现的问题可能在高版本中解决了 阅读全文
posted @ 2023-05-17 21:28 cnetsa 阅读(31) 评论(0) 推荐(0) 编辑
摘要:JavaBean 类必须是一个公共类,并将其访问属性设置为 publicJavaBean 类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器,此构造器也应该通过调用各个特性的设置方法来设置特性的缺省值。一个javaBean类不应有公共实例变量,类变量都为private持有值应该通过一组存取 阅读全文
posted @ 2023-05-17 21:25 cnetsa 阅读(44) 评论(0) 推荐(0) 编辑
摘要:静态变量属于类本身,在类加载的时候就会分配内存,可以通过类名直接访问; 非静态变量属于类的对象,只有在类的对象产生时,才会分配内存,通过类的实例去访问; 静态方法也属于类本身,但是此时没有类的实例,内存中没有非静态变量,所以无法调用。 阅读全文
posted @ 2023-05-17 21:23 cnetsa 阅读(75) 评论(0) 推荐(0) 编辑
摘要:(1)强引用 Java中默认声明的就是强引用,比如: Object obj = new Object();obj = null;只要强引用存在,垃圾回收器将永远不会回收被引用的对象。如果想被回收,可以将对象置为null; (2)软引用(SoftReference) 在内存足够的时候,软引用不会被回收 阅读全文
posted @ 2023-05-17 21:22 cnetsa 阅读(19) 评论(0) 推荐(0) 编辑
摘要:(1)String String是不可变对象,每次对String类型的改变时都会生成一个新的对象。 (2)StringBuilder 线程不安全,效率高,多用于单线程。 (3)StringBuffer 线程安全,由于加锁的原因,效率不如StringBuilder,多用于多线程。 不频繁的字符串操作使 阅读全文
posted @ 2023-05-17 21:21 cnetsa 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Java中Object有一个方法: public native int hashcode(); (1)hashcode()方法的作用 hashcode()方法主要配合基于散列的集合一起使用,比如HashSet、HashMap、HashTable。 当集合需要添加新的对象时,先调用这个对象的hashc 阅读全文
posted @ 2023-05-17 21:20 cnetsa 阅读(51) 评论(0) 推荐(0) 编辑
摘要:NullPointerException:空指针异常;SQLException:数据库相关的异常;IndexOutOfBoundsException:数组下角标越界异常;FileNotFoundException:打开文件失败时抛出;IOException:当发生某种IO异常时抛出;ClassCas 阅读全文
posted @ 2023-05-17 21:19 cnetsa 阅读(15) 评论(0) 推荐(0) 编辑
摘要:final可以修饰类,变量,方法,修饰的类不能被继承,修饰的变量不能重新赋值,修饰的方法不能被重写 finally用于抛异常,finally代码块内语句无论是否发生异常,都会在执行finally,常用于一些流的关闭。 finalize方法用于垃圾回收。 一般情况下不需要我们实现finalize,当对 阅读全文
posted @ 2023-05-17 21:07 cnetsa 阅读(16) 评论(0) 推荐(0) 编辑
摘要:(1)throw 作用在方法内,表示抛出具体异常,由方法体内的语句处理;一定抛出了异常; (2)throws 作用在方法的声明上,表示抛出异常,由调用者来进行异常处理;可能出现异常,不一定会发生异常; 阅读全文
posted @ 2023-05-17 21:07 cnetsa 阅读(44) 评论(0) 推荐(0) 编辑
摘要:(1)什么要使用克隆? 想对一个对象进行复制,又想保留原有的对象进行接下来的操作,这个时候就需要克隆了。 (2)如何实现对象克隆? 实现Cloneable接口,重写clone方法;实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深克隆。BeanUtils,apac 阅读全文
posted @ 2023-05-17 21:06 cnetsa 阅读(74) 评论(0) 推荐(0) 编辑
摘要:序列化就是一种用来处理对象流的机制。 将对象的内容流化,将流化后的对象传输于网络之间。 序列化是通过实现serializable接口,该接口没有需要实现的方法,implement Serializable只是为了标注该对象是可被序列化的,使用一个输出流(FileOutputStream)来构造一个O 阅读全文
posted @ 2023-05-17 21:04 cnetsa 阅读(91) 评论(0) 推荐(0) 编辑
摘要:所谓反射,是java在运行时进行自我观察的能力,通过class、constructor、field、method四个方法获取一个类的各个组成部分。 在Java运行时环境中,对任意一个类,可以知道类有哪些属性和方法。这种动态获取类的信息以及动态调用对象的方法的功能来自于反射机制。 阅读全文
posted @ 2023-05-17 21:03 cnetsa 阅读(9) 评论(0) 推荐(0) 编辑
摘要:existcreateFilecreateDirectorywritereadcopysizedeletemove 阅读全文
posted @ 2023-05-17 21:02 cnetsa 阅读(19) 评论(0) 推荐(0) 编辑
摘要:(1)同步阻塞BIO 一个连接一个线程。 JDK1.4之前,建立网络连接的时候采用BIO模式,先在启动服务端socket,然后启动客户端socket,对服务端通信,客户端发送请求后,先判断服务端是否有线程响应,如果没有则会一直等待或者遭到拒绝请求,如果有的话会等待请求结束后才继续执行。 (2)同步非 阅读全文
posted @ 2023-05-17 21:02 cnetsa 阅读(145) 评论(0) 推荐(0) 编辑
摘要:(1)按流划分,可以分为输入流和输出流; (2)按单位划分,可以分为字节流和字符流; 字节流:inputStream、outputStream; 字符流:reader、writer; 阅读全文
posted @ 2023-05-17 21:00 cnetsa 阅读(24) 评论(0) 推荐(0) 编辑
摘要:(1)接口 接口使用interface修饰;接口不能实例化;类可以实现多个接口; ①java8之前,接口中的方法都是抽象方法,省略了public abstract。②java8之后;接口中可以定义静态方法,静态方法必须有方法体,普通方法没有方法体,需要被实现; (2)抽象类 抽象类使用abstrac 阅读全文
posted @ 2023-05-17 21:00 cnetsa 阅读(23) 评论(0) 推荐(0) 编辑
摘要:抽象类不能被实例化;抽象类可以有抽象方法,只需申明,无须实现;有抽象方法的类一定是抽象类;抽象类的子类必须实现抽象类中的所有抽象方法,否则子类仍然是抽象类;抽象方法不能声明为静态、不能被static、final修饰。 阅读全文
posted @ 2023-05-17 20:59 cnetsa 阅读(39) 评论(0) 推荐(0) 编辑
摘要:equals、length、contains、replace、split、hashcode、indexof、substring、trim、toUpperCase、toLowerCase、isEmpty等等。 阅读全文
posted @ 2023-05-17 20:58 cnetsa 阅读(18) 评论(0) 推荐(0) 编辑
摘要:添加到StringBuilder中,然后调用reverse()。 阅读全文
posted @ 2023-05-17 20:57 cnetsa 阅读(18) 评论(0) 推荐(0) 编辑
摘要:对象1:new StringBuilder() 对象2:new String("a") 对象3:常量池中的"a" 对象4:new String("b") 对象5:常量池中的"b" 深入剖析:StringBuilder中的toString(): 对象6:new String("ab") 强调一下,to 阅读全文
posted @ 2023-05-17 20:57 cnetsa 阅读(105) 评论(0) 推荐(0) 编辑
摘要:(1)常见String类的获取功能 length:获取字符串长度;charAt(int index):获取指定索引位置的字符;indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引;substring(int start):从指定位置开始截取字符串,默认到末尾;substring 阅读全文
posted @ 2023-05-17 20:55 cnetsa 阅读(104) 评论(0) 推荐(0) 编辑
摘要:将对象封装到stringBuilder中,调用reverse方法反转。 阅读全文
posted @ 2023-05-17 20:52 cnetsa 阅读(22) 评论(0) 推荐(0) 编辑
摘要:String str="i"会将起分配到常量池中,常量池中没有重复的元素,如果常量池中存中i,就将i的地址赋给变量,如果没有就创建一个再赋给变量。 String str=new String(“i”)会将对象分配到堆中,即使内存一样,还是会重新创建一个新的对象。 阅读全文
posted @ 2023-05-17 20:50 cnetsa 阅读(39) 评论(0) 推荐(0) 编辑
摘要:不属于。 八种基本数据类型:byte、short、char、int、long、double、float、boolean。 阅读全文
posted @ 2023-05-17 20:49 cnetsa 阅读(14) 评论(0) 推荐(0) 编辑
摘要:Math提供了三个与取整有关的方法:ceil、floor、round (1)ceil:向上取整; Math.ceil(11.3) = 12; Math.ceil(-11.3) = 11; (2)floor:向下取整; Math.floor(11.3) = 11; Math.floor(-11.3) 阅读全文
posted @ 2023-05-17 20:48 cnetsa 阅读(46) 评论(0) 推荐(0) 编辑
摘要:(1)用来修饰一个引用 如果引用为基本数据类型,则该引用为常量,该值无法修改; 如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。 如果引用时类的成员变量,则必须当场赋值,否则编译会报错。(2)用来修饰一个方法 当使用final修饰方法时,这 阅读全文
posted @ 2023-05-17 20:48 cnetsa 阅读(27) 评论(0) 推荐(0) 编辑
摘要:对于基本类型,==比较的是值; 对于引用类型,==比较的是地址; equals不能用于基本类型的比较; 如果没有重写equals,equals就相当于==; 如果重写了equals方法,equals比较的是对象的内容; 阅读全文
posted @ 2023-05-17 20:46 cnetsa 阅读(8) 评论(0) 推荐(0) 编辑
摘要:1、JDK 和 JRE 有什么区别?JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是 阅读全文
posted @ 2023-05-17 20:46 cnetsa 阅读(77) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示