javaSE_线程_集合_API
文章平均质量分 50
线程_集合_JavaAPI
孤独斗士
日拱一卒无有尽 功不唐捐终入海
展开
-
ConcurrentModificationException
正在用Iterator迭代器循环操作的集合不能调用集合的删除方法,否则就会报异常:ConcurrentModificationException。(调用迭代器的remove方法可以)原创 2024-06-26 13:34:12 · 216 阅读 · 0 评论 -
chat4-Server端保存聊天消息到mysql
本文档描述了Server端接收到Client的消息并转发给所有客户端或私发给某个客户端同时将聊天消息保存到mysql服务端为当前客户端创建一个线程,此线程接收当前客户端的消息并转发给所有客户端或私发给某个客户端同时将聊天消息保存到mysql本文档主要总结了将聊天消息保存到mysql!!!),;import;import;import;/**用druid连接池来连接数据库的工具类*/DBUtil。原创 2024-06-02 14:54:06 · 908 阅读 · 0 评论 -
chat2-Client发送数据给Server
注: socket对象和服务端对应,里边包含此客户端和服务端对应的输入流和输出流可以用来读服务端发送的数据并给服务端返回数据。//Socket提供的方法: OutputStream getOutputStream(),通过该Socket获取。//通过该Socket对象获取的输入流(可以读取对应客户端发送过来的字节数据)1.1.客户端的类Client.java中添加如下的start()方法 (表示启动客户端功能的方法),并调用。//服务端的socket包含输出流和输入流用于接收客户端数据并返回输出给客户端。原创 2024-06-02 14:30:45 · 816 阅读 · 0 评论 -
chat1-Client&Server连接
/ 该方法用于接受客户端的连接,此方法是一个阻塞方法,调用后方法会"卡住"//java.net.Socket 单词释义:"插座"。//java.net.ServerSocket类似于聊天室服务端的"总机",该"总机"上有若干的"插座"// 开始等待客户端的连接,一旦一个客户端连接,那么此方法会立即返回一个。// 每个插座可以连接一个客户端的插头,实现让多个客户端连接到同一个"总机"上。// 2:一旦一个客户端与总机建立连接,总机就会分配一个"插座"与该客户端沟通。原创 2024-06-02 14:26:30 · 744 阅读 · 0 评论 -
java泛型
JDK5除了推出foreach新循环,还推出了一个新特性:泛型泛型作用:在一个类或接口的声明处指定该类中某个属性的类型。或声明方法返回值的类型或方法参数的类型泛型也称为参数化类型。它允许我们在一个类或接口的声明处指定该类中某个属性的类型或方法返回值的类型或方法参数的类型,使得我们使用这个类时更方便更灵活。使用了泛型的类叫泛型类、 使用了泛型的接口叫泛型接口、 使用了泛型的方法叫泛型方法泛型在集合中广泛使用,用于指定该集合中的元素类型。注意:当没有指定泛型时,默认类型为Object类型。原创 2024-05-29 09:26:00 · 512 阅读 · 0 评论 -
javaIO流知识点概况
实际开发中我们还有功能更好用的字符高级流.但是其他的字符高级流都有一个共通点:不能直接连接在字节流上.而实际操作设备的流都是低级流同时也都是字节流.因此不能直接在流连接中串联起来.转换流是一对可以连接在字节流上的字符流,其他的高级字符流可以连接在转换流上.在流连接中起到"转换器"的作用(负责字符与字节的实际转换)重载的构造方法允许我们再传入一个boolean型参数,如果这个值为true,则文件流为追加模式,即:若连接文件时该文件存在,原有数据全部保留,通过当前流写出的数据会顺序的追加到文件中。原创 2024-05-28 18:18:05 · 1003 阅读 · 0 评论 -
java字符串:
中的 "张三丰" 改为 "张三",则第一个个人想让name的值为"张三"//java编译器会先将"hello"和 "world"拼接为"helloworld",再将"helloworld"存储到符串常量池中。//再同一个时间点第二个人将里边的 "张三" 改为 "张武", 则第一个人查看修改之后的数据时,发现name不是他想要的"张三"//比如将"abc"改成"abcd" (不是在原"abc"字符串中修改,而是创建了一个新的字符串值为"abcd" )//原创 2024-05-23 09:13:07 · 534 阅读 · 0 评论 -
Java枚举
1.enum和class及interface的地位一样(是相似的) (枚举enum更像普通类class)。枚举enum更像普通类class: 构造方法私有、创建对象格式为: 对象名(构造方法参数值)2.枚举类默认继承java.lang.Enum类(java.lang.Enum类继承java.lang.Object类)3.枚举类的对象必须写在第一行而且默认用public static final修饰,不需使用new 关键字,不需显式调用构造器。原创 2024-05-17 10:39:42 · 767 阅读 · 0 评论 -
Java线程的状态
一、JavaAPI中线程的物6种状态:二、操作系统层面的五种状态:三、常见的资料及课本上的图示:原创 2024-03-25 21:20:48 · 159 阅读 · 0 评论 -
Callable方式创建线程
newFixedThreadPool是Java中的一个线程池类,它是一个固定大小的线程池,线程的数量在创建线程池时就已经确定。线程池中的线程数量一旦被确定,就不会发生改变。在Java中,newFixedThreadPool()方法创建的线程池是一个固定大小的线程池,线程池中的线程数量是固定的,由构造函数传入的参数指定,而任务队列的大小则由内部的阻塞队列来决定。原创 2024-01-16 12:00:34 · 1366 阅读 · 0 评论 -
TreeSet指定排序规则
TreeSet集合如果要对添加的元素进行排序,则添加的元素所属的类要实现Comparable接口(基本类型的包装类,String类都文现了该接口),Comparable接口的compareTo()方法内会用自然比较方法对元素排序,这种排序称为类的自然排序。如果将自定义的IPhone对象存入TreeSet,TreeSet将不会对添加的元素进行排序,IPhone对象所属的类可以通过实现Comparable接口并重写compareTo()方法实现对象元素的顺序存取。TreeSet集合还有另一种实现排序的方式。原创 2024-01-15 14:06:34 · 449 阅读 · 0 评论 -
Iterator迭代器操作集合元素时,不能用集合删除元素
在使用Iterator迭代器对集合中的元素进行迭代时,如果调用了集合对象的remove()方法删除元素或者调用add()方法添加元素之后,继续使用迭代器遍历元素,会出现异常(java.util.ConcurrentModificationException)。原创 2024-01-15 12:49:28 · 513 阅读 · 0 评论 -
数组转集合,集合转数组
【代码】数组转集合,集合转数组。原创 2024-01-14 22:37:27 · 416 阅读 · 0 评论 -
java中hashmap的实现原理是什么?
HashMap 的实现原理一、HashMap 概述HashMap 是基于哈希表的 Map 接口的非同步实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 collection 视图所需的时间与 HashMap 实例的“容量”(桶的数量)及其大小(键-值映射关系数)成比例。所以,如果迭代性能很重要,则不要将初始容量设置得转载 2022-03-03 12:11:11 · 4691 阅读 · 0 评论 -
jdbc对oracle表的char列操作
注意oracle表的列定义的是char类型的, jdbc代码用getString或setString方法操作此列就会不成功。 char是定长字符串,oracle会默认添加空白将列补齐(需要将表换成varchar类型的)...原创 2018-08-10 11:41:52 · 655 阅读 · 0 评论 -
字符串拼接
String s1 = "abc"; String s2 = new String("abc"); //System.out.println(s1 == s2); //s2在堆中 //在JDK6.0及之前版本,字符串常量池是放在Perm Gen区(也就是方法区)中; //在JDK7.0版本,字符串常量池被移到了堆中了。至于为什么移到堆内,大概是由于方法区的内存空间太小了。 String s3 = "你好吗"; String s4 = "你"; String...原创 2020-07-02 11:26:26 · 156 阅读 · 0 评论 -
ArrayList和LinkedList集合的区别
当随机访问List(get和set操作)时,ArrayList比LinkedList的效率更高,因为LinkedList是基于链表的存储方式,所以需要移动指针从前往后依次查找。当对数据进行增加和删除的操作(add和remove操作)时,LinkedList比ArrayList的效率更高,因为ArrayList是数组,所以在其中进行增删操作时,会对操作点之后所有数据的下标索引造成影响,需要进行数据的移动。34、【多选题】(多选题)Java中的集合类包括ArrayList、LinkedList、HashM原创 2020-07-02 12:36:57 · 210 阅读 · 0 评论 -
java反射基础
一.基本反射(不获取private内容,非暴力反射)A.学生类Studentpackage com.tedu.day51;public class Student { private int stu_no; private int age; private String name; public Student() { } private Student(int stu_no, int age, String name) { th原创 2020-06-24 10:35:01 · 148 阅读 · 0 评论 -
TreeMap
一、TreeeMap简介在Map集合框架中,除了HashMap以外,TreeMap也是常用到的集合对象之一。与HashMap相比,TreeMap是一个能比较元素大小的Map集合,会对传入的key进行了大小排序。其中,可以使用元素的自然顺序,也可以使用集合中自定义的比较器来进行排序;不同于HashMap的哈希映射,TreeMap实现了红黑树的结构,形成了一颗二叉树TreeMap.javapublic class TreeMap<K,V> extends Abstr..转载 2022-03-03 13:04:25 · 448 阅读 · 0 评论 -
ConcurrentHashMap简介
一、jdk1.8之前的数据结构:1.默认情况下会有16个区段 Segment数组 Segment[16]2.每次每个区段Segment中会保存若干个散列桶,每次散列桶长度扩容成2^n次方的长度。 多个散列桶相连就构成了散列表。3.存入元素: key带入到hashcode方法众获得hashcode值,然后把hashcode值带入到散列算法中获取segment的下标(区段编号),再根据key带入到定义好的函数中获取Segment对象中散列桶的下标。如果此位置有元素就构成链表(JDK1.8及以后会原创 2022-03-07 12:45:11 · 56424 阅读 · 5 评论 -
类和对象解释
---------------------------------------2022-03-08 14:27原创 2022-03-08 14:28:04 · 117 阅读 · 0 评论 -
解决sun包下的类不能使用的问题AudioPlayer,BASE64Encoder
第一步:在使用sun.misc包下的API的项目上右键选择Build Path,选择Configure Build Path 第二步:在Java Build Path窗口,点击第三个选项卡Libraries,选择JRE System Libraries,选择第一项Access rules,点击Edit第三步:在弹出的窗口中点击Add第四步:在Resolution后面选择Accessible选项,下面的Rule Pattern配置为**,点击OK即可。第五步:点击OK第六步:点击Apply,点击O.原创 2022-03-08 16:21:12 · 670 阅读 · 0 评论 -
JavaIO流
1.BufferedInputStreamBufferedInputStream继承于FilterInputStream, 提供缓冲输入流功能。缓冲输入流相对于普通输入流的优势是,它提供了一个缓冲数组,每次调用read方法的时候,它首先尝试从缓冲区里读取数据,若读取失败(缓冲区无可读数据),则选择从物理数据源(譬如文件)读取新数据(这里会尝试尽可能读取多的字节)放入到缓冲区中,最后再将缓冲区中的内容部分或全部返回给用户.因为从缓冲区里读取数据远比直接从物理数据源(譬如文件)读取速度快。注意:但是它使用时原创 2022-03-29 11:33:46 · 80 阅读 · 0 评论 -
Lambda表达式
Lambda表达式(第一点和第三点是重点):1.匿名内部类可以简写为lambda表达式:省略new 和这个方法的定义,保留这个的方法体和参数)2.注意:如果接口中的方法只有一个参数,则lambda表达式可以省略小括号3.注意:如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写,同时要省略分号此时,如果这行代码是return语句,必须省略return不写,同时也必须省略";"不写4.注意:Lambda表达式中可以省略参数的类型(下边都省略了参数的类型)5.只要接口中只有一个抽象函数原创 2022-05-10 16:56:51 · 587 阅读 · 0 评论 -
反射获取字节码对象的几种方式
一、几种方式:**1.类名.class方式方式 :****2.Class.forName()方式:****3.Demo1.class.getClass()****4.类名.class**二、区别:**总结:** **类名.class方式方式 :** 只会加载类,不会执行静态代码块,不会实例化对象)-**Class.forName()方式:**会加载类,会执行静态代码块, 不会实例化对象**Demo1.class.getClass()得到的Class对象和类名...原创 2022-05-25 16:43:18 · 167 阅读 · 0 评论 -
类的加载..
e432原创 2022-06-06 16:53:31 · 90 阅读 · 0 评论 -
oop_引用类型变量传值
oop_引用类型变量传值原创 2022-07-13 12:46:04 · 80 阅读 · 0 评论 -
oop四大引用
oop四大引用原创 2022-08-27 21:34:00 · 188 阅读 · 0 评论 -
TCP三次握手,四次挥手
原创 2023-07-26 19:33:52 · 64 阅读 · 0 评论 -
生产者消费者
生产者消费者模式属于一种经典的多线程协作的模式,弄清生产者消费者问题能够让我们对于多线程编程有更深刻的理解,下面,为大家分享一个生产者消费者的案例。一、案例描述这里以快递为例,假设有一个快递柜,用来存快递,然后有快递员和取件人,快递员往快递柜里存快递,取件人从快递柜中取走快递。快递员作为生产者,取件人作为消费者,当两者在一个时间段同时进行多次自己的操作时,很明显这就是多线程编程的生产者消费者实例了。原创 2023-07-09 00:49:30 · 220 阅读 · 0 评论 -
获取Resource路径
原创 2023-05-17 13:15:21 · 92 阅读 · 0 评论 -
集合的排序,循环
【代码】集合的排序,循环。原创 2023-02-27 12:19:52 · 83 阅读 · 0 评论 -
java异常体系结构图
java异常体系结构图432432deasa dfsafdasfdsaf原创 2023-02-27 11:47:34 · 191 阅读 · 0 评论 -
LinkedList集合
321原创 2022-09-30 18:16:08 · 599 阅读 · 0 评论 -
Java泛型总结
java泛型总结.....原创 2022-09-08 18:22:46 · 264 阅读 · 0 评论 -
Collection操作
Collection集合操作原创 2022-09-07 01:09:17 · 238 阅读 · 0 评论 -
反射获取参数名-设置编译器
反射获取参数名-设置编译器....原创 2022-09-05 11:45:48 · 141 阅读 · 0 评论 -
wait和notify的用法
432原创 2022-06-08 14:18:20 · 1239 阅读 · 0 评论 -
wait和notify&生产者消费者模式
w321原创 2022-06-06 16:51:02 · 333 阅读 · 0 评论 -
同步通讯和异步通讯的区别
以请求间的通讯为例: 同步通讯是指:客户端发起的请求必须等待前一个请求结束才能发起 异步通讯是指:客户端发起的请求无需等待前一个请求结束即可发起.最后达到局部刷新的效果,以线程间的通讯为例: 同步通讯是指:多个线程访问同-一个同步资源,一个线程必须等待前- -个线程执行结束才能开始执行 异步通讯是指:线程之间各自执行各自的,互不影响,线程无需等待其它线程结束即可开始执行....原创 2022-03-18 09:52:51 · 1485 阅读 · 0 评论