javase知识点
se学习的知识点总结
outlier--
最后我才知道,原来让我失去理智的东西叫病毒
展开
-
循环栅栏CyclicBarrier实现十个人赛跑
【代码】循环栅栏CyclicBarrier实现十个人赛跑。原创 2022-10-09 20:43:57 · 112 阅读 · 0 评论 -
将Collections.sort改为自定义规则排序(例如降序)
【代码】将Collections.sort改为自定义规则排序(例如降序)原创 2022-09-20 14:51:51 · 298 阅读 · 0 评论 -
将Arrays.sort改为自定义规则排序(例如降序)
【代码】将Arrays.sort改为自定义规则排序(例如降序)原创 2022-09-20 14:48:36 · 159 阅读 · 0 评论 -
Comparable接口与Comparator接口
Comparable接口是设计层面的排序 在使用treeset进行添加时使用的该接口排序规则。在设计层面不满足自己需要的排序规则时,可使用自定义排序规则。显而易见排序规则被改变。原创 2022-09-20 14:41:14 · 179 阅读 · 0 评论 -
一维数组与二维数组比较相等
【代码】一维数组与二维数组比较相等。原创 2022-09-18 14:55:42 · 300 阅读 · 0 评论 -
java为什么编译与解释并存
高级编程语言按照执行方式可以分为编译型和解释型。原创 2022-09-01 15:20:57 · 717 阅读 · 0 评论 -
多线程详解
目录线程进程并行并发优点何时需要多线程Thread类常用方法线程的调度java的调度方法线程优先级用户线程与守护线程创建线程与使用1.继承Thread类2.实现Runnable接口两种方式对比3.实现Callable接口如何理解Callable比Runnable强大4.线程池线程池相关API线程的生命周期线程安全线程同步方法一:同步代码块方法二:同步方法线程的死锁问题Lock锁(公平,非公平)两种方式对比原创 2022-04-25 10:07:49 · 222 阅读 · 1 评论 -
Integer常量池
常量池java中存在字符串常量池,维护了所有String对象使用String s="zx"的时候是使用String.valueOf("zx")从常量池中找了个对象返回在使用new的时候是直接创建一个新的对象Integer中也有常量池 其中缓存了-128到127之间的数字(一个字节八位大小)Integer a= 127 与 Integer b = 127相等吗 对于对象引用类型:==比较的是对象的内存地址。 对于基本数据类型:==比较的是值。如果整型字面量的值在-128到127原创 2022-04-01 11:09:01 · 1157 阅读 · 2 评论 -
String中的hashcode缓存以及HashMap中String作key的好处
不可变性String类的值是保存在value数组中的,并且是被private final修饰的.private修饰,表明外部的类是访问不到value的,同时子类也访问不到,当然String类不可能有子类,因为类被final修饰了.final修饰,表明value的引用是不会被改变的,而value只会在String的构造函数中被初始化,而且并没有其他方法可以修改value数组中的值,保证了value的引用和值都不会发生变化final关键字的作用有如下几种 final修饰类时,表明这个类不...原创 2022-04-01 09:50:21 · 1024 阅读 · 0 评论 -
jdbc编程步骤
目录1.注册驱动2.获取连接3.获取数据库操作对象4.执行sql5.处理查询结果集6.释放资源1.注册驱动加载数据库驱动,通常使用Class类的forName()静态方法来加载驱动。如下代码:Class.forName(dirvirClass)上面代码中的driverClass就是数据库驱动类所对应的字符串加载MySQL数据库时采用的代码为:Class.forName("com.mysql.jdbc.Driver");2.获取连接通过Drive原创 2022-03-31 17:56:07 · 197 阅读 · 0 评论 -
多态的应用场景
一、常用类1.集合中的add()方法可以添加任意类型的数据,原因是Object是所有数据类型的父类。2.当用增强for循环遍历集合时,使用Object类遍历所有元素二.数据库驱动JAVA定义了JDBC Driver接口,不同的数据库开发商按照规范实现该接口,这也是多态的一种表现形式(一个接口对应不同的实现类)。// Mysql注册JDBC驱动程序 Class.forName("com.mysql.cj.jdbc.Driver"); //SqlServer注册JDBC驱动原创 2022-03-31 14:15:41 · 2420 阅读 · 0 评论 -
浅拷贝与深拷贝
浅拷贝:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。即对象的浅拷贝会对“主"对象进行拷贝,但不会复制主对象里面的对象。"里面的对象”会在原来的 对象和它的副本之间共享。深拷贝:深拷贝是一个整个独立的对象拷贝,深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象一起拷贝时即发生深拷贝。深拷贝相比于浅拷贝速度较慢并且花销较大。简而言之,深拷贝把要复制的对象所引用的对象都复制了一遍总结:浅拷贝只是对指针的拷贝,拷贝.原创 2022-03-08 09:05:56 · 72 阅读 · 0 评论 -
HashMap的getOrDefault()方法
当Map集合中有这个key时,就使用这个key值,如果没有就使用默认值defaultValue HashMap<String, String> map = new HashMap<>(); map.put("name", "cookie"); map.put("age", "18"); map.put("sex", "女"); String name = map.getOrDefault("name", "random"); System.out.println(na原创 2022-03-08 09:06:07 · 186 阅读 · 0 评论 -
executeQuery,executeUpdate,execute区别
executeQuery(Stringsql)执行select语句,它返回的是查询后得到记录集(resultset)。executeUpdate(Stringsql)执行update,insert,delete语句,它返回的是语句执行后说影响到的记录条数(int)。对于CREATETABLE或DROPTABLE等不操作行的DDL语句,executeUpdate的返回值总为零。execute(Stringsql)执行任何sql语句,也就是前两者之一。返回值是第一个结果的表现形...原创 2022-03-05 15:55:31 · 289 阅读 · 0 评论 -
LinkedList方法(可实现栈和队列)
增加:add(Ee):在链表后添加一个元素;通用方法addFirst(Ee):在链表头部插入一个元素;特有方法addLast(Ee):在链表尾部添加一个元素;特有方法push(Ee):与addFirst方法一致offer(Ee):在链表尾部插入一个元素 add(intindex,Eelement):在指定位置插入一个元素。off...原创 2022-01-01 20:59:19 · 152 阅读 · 0 评论 -
单例模式(饿汉式和懒汉式两种实现方式)
单例模式就是通过应用此模式,保证应用该模式的类只有一个实例,即一个类只有一个对象实例二者最主要的区别在于创建对象的时机不同:饿汉模式是在类加载时就创建了对象实例懒汉模式是在使用时才会创建(调用获取对象实例的时候才创建)饿汉模式存在资源浪费的可能饿汉模式不存在线程安全问题,懒汉模式存在线程安全问题两种实现方式如下:package test;public class patterntest { public static void main(String[] args)原创 2021-12-08 00:16:42 · 612 阅读 · 0 评论 -
泛型(派生子类,泛型通配符,类型擦除)
泛型通配符用来指定传入实参类型,用?代替具体的类型实参1.类型通配符上限<? exteds T>表示上限为T类型,可传入T及T的子类package test;public class Fan { public static void main(String[] args) { People2<String> p1=new People2(5); People2<Integer> p2=new People2(6)原创 2021-12-07 21:25:03 · 1036 阅读 · 0 评论 -
==与equals的区别(四个例子简单易懂)附jvm简图
1.概述1.==解析对于基本数据类型来说,==比较的是其值是否相等对于引用数据类型来说,==比较的是其对象在堆空间中内从地址是否相等2.equals解析object类中equals方法源码比较的是堆内存地址是否相等String类,Date类,包装类等都重写了equals方法,其都比较的是内容是否相等3.源码图解下图为object类equals方法直接比较是否为同一个对象下图为object类重写的equals方法比较内容是否相等2.例子package s.原创 2021-11-15 22:51:46 · 685 阅读 · 0 评论 -
单例模式的一种实现方法
单例模式1.单例模式的定义确保某一个类只有一个实例(对象)2使用场景避免产生多个对象消耗过多资源某种类型对象只应该有且只有一个3一种实现方式将构造方法私有化,在其他类中不能随便使用package system.test1;public class patterndemo { private static patterndemo demo=null; private patterndemo(){ } public static patter原创 2021-11-14 16:00:48 · 363 阅读 · 0 评论 -
线程VS进程,多线程VS多进程,并行VS并发,单核cpuVS多核cpu
概论程序是为完成特定任务、用某种语言编写的组指令的集合。即指一段静态的代码,静态对象。进程是程序的次执行过程,或是正在运行的 一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。如:运行中的QQ,运行中的MP3播放器程序是静态的,进程是动态的进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域线程,进程可进步细化为线程,是一个程序内部的一条执行路径.若一个进程同一时间并行执行多个线程,就是支持多线程的线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器...原创 2021-12-10 16:57:28 · 1394 阅读 · 0 评论 -
集合框架一:Collection集合
概述Java 集合可分为Collection和Map两种体系Collection接口:单列数据,定义了存取一组对象的方法的集合List:元素有序、可重复的集合Set接口:元素无序、不可重复的集合Map接口:双列数据,保存具有映射关系“key-value对”的集合Colletion接口常用方法1.添加add(Objec tobj)addAll(Collection coll)2.获取有效元素的个数int size()3.清空集合void clear()4.是否是空集合原创 2021-12-08 15:22:21 · 222 阅读 · 0 评论