javase
你得握有刀剑
自我否定,螺旋上升
展开
-
彻底理解ThreadLocal
https://blog.csdn.net/lufeng20/article/details/24314381转载 2019-09-16 19:15:10 · 175 阅读 · 0 评论 -
UDP传输文字+实现双人聊天
UDP传输文字+实现双人聊天UDP文字传输:双人聊天:UDP文字传输:发送后记得关闭客户发送输入的文字给服务器public class Client { public static void main(String[] args) throws Exception, UnknownHostException { // TODO Auto-generated method ...原创 2019-08-26 21:01:38 · 436 阅读 · 0 评论 -
线程的缺点与解决方法
继承Thread和实现Runnable的的缺点:1.没有返回结果2.没有异常Callable和Runnable的区别: 1.Runnable无返回值,没有异常抛出的 2.Callable可以在启动线程中获取返回值,以及接受子线程的异常总结:FutureTask类->实现RunnableFuture接口->实现->Runnable,Future接口...原创 2019-08-23 13:48:29 · 199 阅读 · 0 评论 -
线程基础
线程线程基本概念实际操作启动线程的两种方式:案例:要求123功能同时进行:线程基本概念1.什么是进程? -正在执行的程序2.什么是线程? - 一个能够完成独立功能的执行路径,一个进程可有多个线程3.为什么需要开启多线程?a. 当执行某些耗时操作的任务的时候需要开启多线程,防止线程阻塞b. 能够让两个任务看起来像是在同时执行c. 提高CPU的使用率,进而提高进程和内存的使用率(当键盘...原创 2019-08-23 12:53:34 · 57 阅读 · 0 评论 -
ArrayList的动态扩容原理
ArrayList的动态扩容原理动态扩容方法:add(E e)动态扩容方法:add(E e)源码解析:ArrayList的部分代码public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Se...原创 2019-08-18 15:05:35 · 426 阅读 · 0 评论 -
对象排序/比较(利用compare实现数组和List集合中对象比较)
对象比较数组排序准备的类/接口实现数组排序一:实现数组排序二:集合排序普通方法排序数组排序准备的类/接口接口comparable: 利用 compareTo 排序 comparable接口源码中啥也没有就一个抽象方法compareTo,如下: public interface Comparable<T> { public int compareTo(T ...原创 2019-08-18 10:56:31 · 1558 阅读 · 0 评论 -
其他的IO流
其他的IO流打印流:(常用)读写基本数据类型的流读写引用数据类型的流 (序列化流和反序列化流)标准输入输出流(System.in)RandomAccessFile概述:Properties 类打印流:(常用)打印流 : PrintWriter(字符输出) PrintStream(字节输出)总结:有Writer 和Reader 都是字符流1.只有输出流,没有输入流2.具备将字节流转...原创 2019-08-22 19:58:28 · 79 阅读 · 0 评论 -
集合之list接口
集合之list接口LIst接口子类的特点:该接口所特有的方法:增加删除修改查询[遍历]LIst接口子类的特点:有序, 可重复该接口所特有的方法:增加void add(int index, E element)boolean addAll(int index, Collection<? extends E> c) List<String> li=new Arr...原创 2019-08-17 18:39:37 · 155 阅读 · 0 评论 -
泛型详解
泛型详解泛型详解泛型的概述泛型的好处:泛型类:集合的传染性泛型接口泛型方法泛型方法定义:泛型限定符泛型详解为什么需要学习泛型?在JDK1.5之前是没有泛型,当时集合能够存储的都是使用父类Object类型作为形参接受所有的类型如果存储的是同一种类型向下转型没问题,如果集合存储的是不同类型,那么会出现ClassCastException类型转换异常所以我们在转型之前做类型判断,判断后虽然解...原创 2019-08-17 15:10:33 · 173 阅读 · 0 评论 -
网络编程
网络编程网络编程计算机网络基本知识**端口**掌握几个常用的命令协议:UDP TCPsocket:网络编程在网络中传输数据计算机网络基本知识网络通信的三要素1.ip (相当于计算机的"身份证")2.端口 (用来表示每一个进程的身份证)3.协议 (两者规定的规则) HTTP: 超文本传输协议 FTP: 文件传输协议 UDP: 用户数据报协议 TCP: 传输控制协议...原创 2019-08-26 21:09:55 · 70 阅读 · 0 评论 -
实现简单版的Tomcat
Tomcat实现原理:案例:1、用户浏览器访问服务器,服务器获取用户信息并打印用户信息和自身信息2、服务器将服务器内存中的文件发送给客户浏览器copyTom 实现Runnable接口copyTom的run方法中实现服务器的功能//while((line=br.readLine())!=null && line.length() > 0){//保证写入的lin...原创 2019-08-27 13:48:47 · 167 阅读 · 0 评论 -
异常解析
异常解析为什么需要学习异常?异常的概述:异常(Exception)的分类编译时异常:运行时异常:错误 (Error)异常框架体系结构图为什么需要处理异常?JVM(虚拟机)处理异常的方式:自己处理异常方法:异常处理的执行流程注意事项异常处理的标准格式:Throwable类讲解为什么需要学习异常?1.观察程序的错误2.能够让错误指示程序修改异常的概述:异常是指在程序的运行过程中所发生的不...原创 2019-08-15 21:12:19 · 446 阅读 · 0 评论 -
注解详解
@Override@Override :标记该方法是重写父类的方法,若不是父类的方法(没有实现重写),编译报错 @Override //标记该方法是重写父类的方法,若不是父类的方法(没有实现重写),编译报错 public String toString() { // TODO Auto-generated method stub return super.toString();...原创 2019-09-12 10:04:24 · 122 阅读 · 0 评论 -
Junit详解
Junit添加测试环境add Junit jar 一般的开发工具都继承了 junit ,直接添加就可以添加 junit 注解(@Test) 报错提示让我 添加依赖的jar 包运行方式:添加注解后 选中方法名: Run as JunitTest注意:测试方法 要是 public 不能是 private或 static案例断言测试 — ->(4, addn...原创 2019-09-11 21:43:12 · 249 阅读 · 0 评论 -
XML之dom4j详解
Dom4J工具类增删查改-》操作类xml文件:xml的配置文件常用方法:/* * Element element(Qname qname) 通过qname获取节点 * List elements(Qname qname)通过qname获取所有元素节点 * List elements()获取所有节点 */步骤:1、写好工具类2、具体操作直接调用工具类即可工具类属性:编...原创 2019-09-01 14:02:52 · 253 阅读 · 0 评论 -
html定位
html定位绝对定位:相对定位:父子嵌套,定位的区别:绝对定位:son中absolute(son-》222会出现在浏览器以上100的位置) <style> #father{ width: 300px; height: 300px; background-color:red ; position: relative; } #son{ wi...原创 2019-08-31 19:38:56 · 171 阅读 · 0 评论 -
mysql分页查询和提高效率
mysql分页查询和提高效率1、在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset2、LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数...原创 2019-08-31 13:38:15 · 1409 阅读 · 0 评论 -
Xml详解
Xml详解xml基本概念:xml的基本写法:通过javase解析sax解析xml基本概念:注意:第六点:如下图共有5个元素:(3黄2蓝)第八点: Node种类:Element元素节点 Attribute属性节点 Text文本节点 Document 文档对象A表示:id>和之间的空格,文本节点B表示:元素节点,元素为name 且name有个子节点为Text...原创 2019-08-31 08:46:26 · 118 阅读 · 0 评论 -
html基本标签
html基本标签用法:<!DOCTYPE html> <head> 设置html编码格式 <meta charset="utf-8"> <title>我的标题</title> <meta http-equiv="content-type" content="text/html" charset="utf-8" /...原创 2019-08-30 21:05:21 · 340 阅读 · 0 评论 -
多文件同时上传(Thread)+上传对象
实现在一台服务器上同时接受多个文件上传等到前端的时候实现能上传各种类型的文件记得抛出异常啊!!!!!!!服务器的测试代码:步骤:实例化ServerSocket(服务器套接字)获取连接Socket s=ss.accept(); 得到s对象传入服务器run方法启动Threadpublic class Test_SerThread { public static void ma...原创 2019-08-28 11:01:48 · 566 阅读 · 0 评论 -
多线程复制
复制视频文件文件。c:–》D:多线程:n个线程一个文件比较大,分n部分进行复制提示 RandomAccessFile//多线程实现同一文件复制import java.io.File;import java.io.FileNotFoundException;import java.io.RandomAccessFile;public class F_13 { publi...原创 2019-08-27 21:56:07 · 199 阅读 · 0 评论 -
IO流总结
IO流总结io流图buffered高效缓冲字节输入输出流BufferedInputStreamBufferedOutputStreamio流图buffered高效缓冲字节输入输出流BufferedInputStream构造方法:public BufferedInputStream(InputStream in)//默认的字节数组大小是8192 InputStream一般写实现类...原创 2019-08-22 13:07:42 · 179 阅读 · 1 评论 -
并发修改异常加原理(面试)
并发修改异常ConcurrentModificationException异常名称: 并发修改异常产生原因:在使用迭代器迭代集合的同时,使用原集合修改元素解决办法:1.不使用迭代器遍历,使用普通for遍历2.使用迭代器,但是使用列表迭代器3.toArrayforeach是集合和数组的专属迭代器 Collection c=new ArrayList(); c.add("as...原创 2019-08-17 10:07:10 · 391 阅读 · 0 评论 -
集合详解
集合详解集合的诞生集合应该具备以下功能:数组和集合的区别:集合的概述: 集合是一套容器框架集合的诞生为什么学习集合?集合就是容器容器有 数组 StringBuffer StringBuider数组的局限性:1.只能够存储一组相同数据类型的容器2.数组中只有length属性,没有供我们操作对象的方法 Book[] int[]StringBuffer StringBuider特点:...原创 2019-08-16 22:03:37 · 1472 阅读 · 0 评论 -
同步和死锁
同步和死锁同步多线程数据不同步的三种解决方法方式1:同步代码块:方法2:同步方法方法3 创建锁对象死锁:同步多线程数据不同步的三种解决方法需求:深圳罗湖火车站目前正在出售车票,共有100张票,而它有3个售票窗口售票解决办法:1.同步代码块2.同步方法3.同步锁可能出现线程安全的问题的情况:1.存在多线程环境2.多个线程共享同一份数据3.多个线程操作同一份数据并且共享数据做了修...原创 2019-08-23 20:20:50 · 106 阅读 · 0 评论 -
线程属性以及方法
线程线程属性的获取设置和获取线程名称的几种方式线程优先级设定线程休息方法(中断程序)线程分类:用户线程 and 后台线程线程加入:join()线程礼让:线程属性的获取Thread中有get方法很方便Runnable接口中有Thread.currentThread()currentThread()返回当前正在执行线程对象的引用设置和获取线程名称的几种方式1.通过构造方法2.通过...原创 2019-08-23 20:09:27 · 244 阅读 · 1 评论 -
Collections工具类
Collections工具类有了这个工具类,大家可以选择性记住一些集合单列集合只需要记住 ArrayList双列集合记住 HashMap TreeMap LinkedHashMap一般关系集合哪些特点:1.是否有序2.是否唯一3.是否可重复4.是否可排序5.是否线程安全6.效率 【数据结构】7.求最值8.倒置9.查找10.随机equals和hashcode方法用来去重...原创 2019-08-19 20:12:08 · 241 阅读 · 0 评论 -
hashmap的遍历
hashmap的遍历Map接口的遍历分别遍历键值遍历的四种方法:Map接口的遍历遍历值用collection,遍历键用setSet keySet() 遍历键Collection values()Set<Map.Entry<K,V>> entrySet() 初始集合: maps.put("陈羽凡", "白百何"); maps.put("王宝强", ...原创 2019-08-19 19:25:16 · 95 阅读 · 0 评论 -
map和hashmap
mapmapMap集合的特点常用功能注意HashMap类特点:mapMap集合的特点1.能够存储唯一的列的数据(唯一,不可重复) Set2.能够存储可以重复的数据(可重复) Collection3.值的顺序取决于键的顺序4.键和值都是可以存储null元素的5.键和值是多对一的关系常用功能1.添加功能V put(K key, V value)当key相同时,第一次添加元素...原创 2019-08-19 19:09:00 · 216 阅读 · 0 评论 -
引用传递如何实现
三种引用传递:数组 接口 类此处值得是方法体中的传参当要修改的类型为全局变量时,才会真正修改如图:虽然方法体中有引用指向;但是arr作为局部参数传入,导致add失败改进如下:习题:下列代码的执行结果是:public static void main(String arg[]) { StringBuffer a = new StringBuffer("A"); ...原创 2019-08-19 09:24:49 · 766 阅读 · 0 评论 -
嵌套ArrayList
已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这10 支球队随机分为2 个组。采用List集合和随机数2008 北京奥运会男足参赛国家:科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,新西 兰public class List_te02 { public static void main(String[] args) { // TODO A...原创 2019-08-19 08:13:53 · 123 阅读 · 0 评论 -
LinkedHashSet和LinkedHashMap
LinkedHashSet特点:由链表保证元素有序由哈希表保证元素唯一 //注意:有序不是排序!!!! public static void main(String[] args) { // TODO Auto-generated method stub LinkedHashSet<Integer> ls=new LinkedHashSet<>(); ...原创 2019-08-18 20:28:48 · 497 阅读 · 0 评论 -
TreeSet,Treemap主要是排序...
排序方式1–自然排序案例:class Student implements Comparable<Student>{ String name; int score; public Student(String name, int score) { super(); this.name = name; this.score = score; } public...原创 2019-08-18 20:20:41 · 237 阅读 · 0 评论 -
Set 接口
Set类集合的特点: 1.无序 2.唯一 3.只能存储一个null值Set<String> set=new HashSet(); set.add(null); set.add(null); set.add("cv"); set.add("we"); set.add("cv");打印结果:[null, cv, we]HashSet1.HashSe...原创 2019-08-18 17:00:56 · 68 阅读 · 0 评论 -
生产者与消费者模式
生产者与消费者模式案例:要求生产者生产两种商品,每次将玩具卖完后生产者会继续生产案例分析:生产者:消费者测试Demopublic class Threadtest { public static void main(String[] args) { // TODO Auto-generated method stub Toy t=new Toy(); GetThre...原创 2019-08-24 17:55:04 · 98 阅读 · 0 评论 -
线程池与线程组
线程池与线程组线程池Executors工厂类来产生线程池。线程组两者的区别线程池线程池设计思想:最大容量为12,上面画错了。初始容量:5 线程池最开始有5个空余桌子当第二批客人来时(4人),线程池中仅有一个空余桌子5-4(当前空闲数目)<最小空闲数目2扩容开始,由于增量为4,一次扩容4个-》 空闲桌子:5,占用4第三次来4个客人占用桌子8,空闲桌子15-4(当前空...原创 2019-08-24 19:28:36 · 385 阅读 · 0 评论 -
System的基本方法
System.gc(); System.exit(15);//传一个int 一般传0/1 long l=System.currentTimeMillis();原创 2019-08-16 21:08:45 · 382 阅读 · 0 评论 -
Math类的基本使用
System.out.println(Math.abs(-24));//24 System.out.println(Math.sqrt(8));//2.828.. System.out.println(Math.ceil(24.2));//25 System.out.println(Math.floor(-24.6));//-25 System.out.println(Mat...原创 2019-08-16 21:02:56 · 149 阅读 · 0 评论 -
线程的基本状态+线程例题
X:比如在该线程之前有一个线程调用了join,抢占了cpu执行权,刚好抢占的线程调用了interupt,导致其线程中断,将cpu让出,原来线程可以从阻塞到就绪态,继续抢cpuY:有资格进行抢锁活动...原创 2019-08-25 15:25:58 · 213 阅读 · 0 评论 -
枚举详解
为什么需要学习枚举?简化代码提高了可读性作为 switch语句的类型使用枚举定义:表示在一定范围内取值,并且只能够取其中一个,本质就是** 构造方法私有**,成员都是常量的Java抽象类// 枚举的本质class Weekend {private Weekend() {}public static final Weekend MONDAY = new Weekend();pu...原创 2019-08-20 21:57:01 · 175 阅读 · 0 评论