Java复习
Java复习
Morning的呀
Keep Hungry,Keep,Foolish
展开
-
自动装箱中==的使用
自动装箱中==的使用我们知道==在基本类型中比较的是值相等,在引用类型中比较的是地址相等public class E { public static void main(String[] args) { Integer a=123; Integer b=123; System.out.println(a==b);//true String m="M"; String n="N"; System.ou原创 2022-04-03 22:13:03 · 545 阅读 · 0 评论 -
容器,Collection,Map
Java容器Java容器主要包括Collection和Map两种,Collection存储对象的集合,而Map存储键值对(两个对象)的映射表CollectionSetSet集合存储的元素是无序的,而且不允许存储重复的元素Set集合作用:1.检查某一个元素是否存在2.判断插入数据是否有重复元素Set分类1.TreeSet:基于红黑树实现,支持有序操作,例如在范围内查找元素的操作。HashSet查找的时间复杂度为O(1),TreeSet为O(logn)2.HashSet:基于Hash表实原创 2022-04-22 20:19:07 · 412 阅读 · 0 评论 -
分页小公式
分页小公式公式select * from student limit(curPage-1)*pageSize,pageSize;其中curPage为当前页数,pageSize为每页行数(curPage-1)*pageSize为当前起始索引例如:select * from stu LIMIT 1,2;从第一条记录开始,每页显示两个记录查询结果为...原创 2022-04-05 17:59:37 · 233 阅读 · 0 评论 -
final和static
final和staticfinal声明数据为常量,可以是编译时常量,也可以是运行时被初始化后不能改变的常量对于基本类型,final使数值不变对于引用类型,final使引用不变,也不能引用其他的对象,但是被引用的对象本身是可以被修改的方法被final修饰的方法不能被子类重写private方法隐式的被指定为final,如果在子类中定义的方法和基类中的一个private方法名称相同,此时子类的方法不是重写基类方法,而是在子类中定义了一个新方法。final声明类不允许被继承static1.原创 2022-04-19 20:52:40 · 102 阅读 · 0 评论 -
JVM运行机制相关解释
JVM运行机制相关解释Java程序运行的具体过程1.Java源文件被编译器译成字节码文件xxx.java 转换成 xxx.class2.JVM将字节码文件编译成对应操作系统的机器码xxx.class 转换成只有机器可以识别的二进制码3.机器码调用相应操作系统的方法将文件转换成二进制码可以被机器识别后,机器可以调用内部的方法其中,要区分机器码,字节码,汇编语言三者的区别机器码Machine code:机器语言指令,一种CPU的可读指令,CPU可以直接解读的0–1二进制原创 2022-03-19 15:52:05 · 461 阅读 · 0 评论 -
ArrayList一次扩容量
ArrayList一次扩容量ArrayList的初始容量设为10,在每次存入数据后会进行检查,如果超过容量最大值,则以原容量的1.5倍进行扩容初始量:10扩容一次:10*1.5=15扩容两次:(10*1.5)*1.5=22.5…原创 2022-03-15 15:01:56 · 1046 阅读 · 1 评论 -
简述:HashMap的相关内容
简述:解释HashMapHashMap分为以下部分table:是数组,用来标记顺序的slot:是哈希槽,对应数组下标bucket:是哈希桶,存储键值对(JDK8中加入红黑树,如果存储的链表长度大于8时,会将链表转化成红黑树进行存储)...原创 2022-03-15 19:48:10 · 894 阅读 · 0 评论 -
队列中的remove方法
队列中的remove方法结论:remove()方法的含义,是返回第一个元素,并在队列中删除返回的对象并且,remove方法会在队列为空的时候抛异常学习三元组创建二叉树用到了队列,但感觉逻辑不通,不明白元素进行比较后如何将老元素出队列的。正常二叉树进行三元组操作时如下问题来了,在第二个元素入队列时,是B与它的双亲A比较。而在此之后在进入元素D时,并没有代码表示退出元素A,不就变成了D和A比较,但结果却不是这样是怎么回事呢?原因就出在queue()方法上理解问题,我把它单纯原创 2022-03-16 10:38:27 · 900 阅读 · 0 评论 -
异常,泛型,注解
异常,泛型异常异常是指程序运行过程中发生的异常事件,通常是由外部问题导致的。在Java中异常属于对象通常分为两种:Error和ExceptionError表示无法处理的错误Exception分为两种:受检异常:需要使用try-catch进行捕获处理,可以从异常中恢复非受检异常:程序运行时错误,例如除0异常,会导致程序崩溃泛型泛型提供了编译时的类型安全监测机制。泛型的本质是参数化类型,也就是说操作的数据类型被指定为一个参数泛型的作用:增强代码的复用性注解Java注解是附加在代码的信原创 2022-04-20 17:48:29 · 250 阅读 · 0 评论 -
Java中形参,实参,值传递,引用传递
Java中形参,实参,值传递,引用传递学习值传递,和引用传递很容易令人迷糊,那么就来仔细的分析一下。想明白这个问题首先要知道形参和实参实参:就是我们要传递给方法的实际参数形参:就是我们方法签名上定义的参数形参和实参在代码上的位置public class A { public static void example(int a){//形参 System.out.println(a+1); } public static void main(Strin原创 2022-04-19 16:58:37 · 1349 阅读 · 0 评论 -
基本类型和包装类型的区别
包装类型定义:JDK为每一个基本类型提供了对应的包装类型,包装类型可以和基本类型相互赋值,并且包装类型比基本类型功能更强大。区别:1.包装类型可以为null,而基本类型不可以2.包装类型可以用于泛型,基本类型不可以3.基本类型比包装类型更高效4.可以实现自动装箱和拆箱Integer i=1;//自动装箱int j=i;//自动拆箱...原创 2022-04-26 09:29:33 · 212 阅读 · 0 评论 -
JDK8新特性
JDK8新特性简要说一下JDK8新特性Lambda表达式提供了函数式接口Stream API改进JVM方法区,用元空间代替永久代Map集合数据结构优化:之前:顺序表+链表之后:顺序表+链表+红黑树原创 2022-04-20 17:52:41 · 635 阅读 · 0 评论 -
String和String Pool
String类型的随笔String被声明为final,因此不可以被继承在Java8中,Striing内部使用char数组存储数据在Java9之后,String类的实现使用byte数组存储字符串,同时使用coder来标识使用哪种编码原创 2022-04-03 22:16:40 · 295 阅读 · 0 评论 -
switch的小知识
switch的小知识从Java 7开始,可以在switch条件判断语句中使用String对象switch不支持long类型,因为switch设计初衷就只是针对有少数的几个值进行等值判端如果需要判断的值过多,最好使用if比较合适...原创 2022-04-19 18:05:37 · 111 阅读 · 0 评论 -
数组转集合不能使用add()方法的原因
数组转集合不能使用add()方法的原因ArrayList的学习中发现,集合转数组时不能使用add,remove,clear等方法这是因为转换之后的数组内部,没有上述方法,所以使用会报异常。而可以使用set()方法,这是因为set方法是间接对数组进行值的修改操作,并没有对集合个数进行修改。...原创 2022-03-15 15:27:44 · 422 阅读 · 0 评论 -
线程内容二
阻塞队列BlockingQueueFIFO队列(先进先出):LinkedBlockingQueue,ArrayBlockingQueue优先级队列:PriorityBlockingQueue阻塞队列提供了take和put方法:如果队列为空则take阻塞,直到队列中有内容为止如果队列为满,则put将阻塞,直到队列有空闲位置为止JVM内存模型三大特性原子性,可见性,有序性原子性:一个操作是不可中断的,即使是多个线程一起执行的时候,一个操作一旦开始就不会被其他线程干扰。实现:Atom原创 2022-04-23 21:04:26 · 149 阅读 · 0 评论 -
Super和This
Super和Thissuper代表父类,this代表当前对象this应用:可以返回当前对象可以指定当前对象成员属性可以指定当前成员方法调用本类的构造方法super应用:调用父类的成员属性调用父类方法调用父类构造方法注意:this和super不能被static使用super和this()只能有一个定义在第一行,所以只能出现其中一个...原创 2022-04-26 11:49:56 · 71 阅读 · 0 评论 -
clone方法,深拷贝,浅拷贝
clone方法,深拷贝,浅拷贝clone方法定义:clone方法返回与当前对象的一个副本对象,可以通过操作副本对象而不影响当前对象其中,clone方法并不是Cloneable接口的方法,而是Object的一个protected方法。如果一个类没有实现Cloneable接口又调用clone方法,就会抛出CloneNotSupportedException浅拷贝拷贝对象和原始对象的引用类型引用同一个对象深拷贝拷贝对象和原始对象的引用类型引用不同的对象我们可以将男孩比喻为一个类,将电原创 2022-04-19 20:24:14 · 266 阅读 · 0 评论 -
Java中=,==,和equals()的用法
Java中=,==,和equals()的用法首先是=的用法“=”在表示的是赋值的意思在基本类型的使用中,是将"=“后面的值赋值给”=“前面的元素例如:public class A { public static void main(String[] args) { int a,b; a=100; System.out.println(a);//100 b=a; a=200; System.ou原创 2022-04-03 22:02:16 · 973 阅读 · 0 评论 -
toString方法的小知识
toString方法toString方法的功能是将一个对象返回为字符串形式,它会返回一个String实例。在实际应用中通常重写toString方法,给对象提供一个特定的输出模式,当这个类转换为字符串或者与字符串连接时,将会自动调用重写的toString方法...原创 2022-04-19 20:00:06 · 347 阅读 · 0 评论 -
线程内容一
线程线程的六种状态说明:一般教科书和很多网上都说是五种,但查阅Java底层代码显示是六种,总体含义差不多,就采用六种方式新建状态(NEW)线程对象被创建但未被使用可运行状态(Runnable)可能正在运行(Running),也可能在等待CPU时间片(Ready)阻塞状态(Blocked)等待获取一个排它锁,如果线程释放了锁,就会结束当前状态无限期等待(Waiting)等待其他线程进行显式唤醒,否则不会分配CPU时间片限期等待(Timed Waiting)无需等待其他原创 2022-04-23 19:47:53 · 405 阅读 · 0 评论 -
重载和重写
重载和重写重载(Overload)重载是在一个类里面,方法的名字相同,而参数不同,返回类型可以相同也可以不同重载实现的是编译时的多态性,也称前绑定public class A { String name; int id; public void ok(String name){ System.out.println(name); } public void ok(String name,int id){ System.ou原创 2022-04-04 11:52:18 · 315 阅读 · 0 评论 -
Java和C++区别
Java和C++区别1.Java是单纯面向对象语言,C++既支持面向对象也支持面向过程2.Java通过虚拟机实现跨平台,C++依赖于特定平台3.Java没有指针,C++具有指针4.Java支持自动垃圾回收, C++需要手动回收5.Java不支持多继承,提供了接口,而C++支持多继承...原创 2022-04-20 17:55:52 · 3024 阅读 · 0 评论 -
并发控制,乐观锁,悲观锁(2021.8.6)
并发控制,乐观锁,悲观锁(2021.8.6)一.并发控制:当程序中出现并发情况时,保证在并发状态下对数据的准确性,以此确保当前用户和其他用户一同操作时,得到的结果要和单独操作的结果一致。目的:保证一个用户的操作不能影响其他用户避免:读脏数据,幻读,不可重复读例如:两个用户同时操作时,如果两个用户同时进行+1操作,数据库可能会只执行一次+1操作,这样会导致数据库的不准确性。并发控制要保证多个事务同时操作同一数据时,不破坏事务的隔离性,一致性和数据库的统一性。二.悲观锁当对数据库的数据进行原创 2021-08-06 20:58:52 · 231 阅读 · 0 评论