Java 高级
1. 异常 2. 常用类 3. 集合 4.IO 5.网络编程 6. 多线程 7.注解反射。
JarvanStack
保持简单
展开
-
Java Collection和Collections的区别?,Collections 实现sort排序
面试题,一、 Collection1.Collection 是一个 顶级集合是接口(如图)2.提供所以集合的共性方法 * 一、共性方法: * 1.add(): 添加对象到集合 * 2.remove(E e): 移除对象 * 3.size(): 返回集合个数 * 4.toArray(): 放回集合转化的数组 * 5.isEmpty(): 返回true,集合为空 * 6.contains(E e):原创 2020-06-02 20:49:23 · 264 阅读 · 0 评论 -
Java 泛型 泛型规范 extends 和 super 的区别?
一、举例的类之间的关系1.Fruit 和 Meat 继承 extend Food2.Apple 和 Banana 继承 Fruit3.Pork 和 Beef 继承 Meat.二、<?Extends Fruit >上限.1.使用的类型只能是 Fruit或者 Fruit 的子类 如图2.代码实例三、<?Super Fruit> 下限1.Fruit 或者 Fruit的 父类(如图)2.代码实例:四、PECS原则 (Producer Extends ,Consume原创 2020-06-02 20:30:18 · 337 阅读 · 0 评论 -
Java集合 HashMap解析(源码分析)
目录:一、数据结构二、常用构造三、常用属性四、常用方法put()五、常用方法get()六、常用方法remove()一、数据结构1.hashmap的数据结构由数组+链表(链表太长的话就转化为红黑树)2.继承map的键值对3.hashMap数据结构图解;...原创 2020-06-02 16:37:58 · 368 阅读 · 0 评论 -
Java 反射详解。(入门篇)
一、什么是反射?1.定义将类的各个组成部分封装为其他对象(Field,Constructor,Method),就是反射机制2. 比如将class文件中的成员变量封装为第二阶段Class类中的Field类二、反射有什么用?运行的时候操作这些对象,比如:你使用idea时候的class. 然后自动弹出的可用的提示方法降低程序的耦合性。三、如何获取Class对象的3种方式,1. 三种方式Class.forName(“全类名”) : 阶段1可以使用,将class文件,加载进内存并返原创 2020-05-14 21:40:27 · 293 阅读 · 0 评论 -
Java 注解(入门篇) 内置注解 元注解 自定义注解
一、为什么要学习注解和反射?注解和反射是我们所有框架的底层(比如 Springboot,Spring)二、注释(Comments)和注解(Annotation)的区别?注释是给程序员理解代码的,程序并不会去编译或者解析注解不仅可以给人看还可以给程序看。三、注解入门1.注解的格式@+注解名字2.注解有检查的作用3. 注解(Annotation)的是用区域:方法method上比如 Override类class包 package字段几乎无所不在。四、内置注解1. O原创 2020-05-13 13:04:25 · 540 阅读 · 0 评论 -
Java IO 打印流PrintStream 可写入任意格式数据,可改变输出到控制台的数据到文件里 教程
1.特点( 打印流继承OutputStream,只能输出。)二、特点可以写入多种数据类型,int char String,所有的数据类型System.setOut(PrintStream printStream)方法可以把sout输出到控制台的打印流 设置为某个文件.‘2.方法三、构造方法new PrintStream(String url)可以 File 也可是 String路径,OutputString类实例,2个参数还可以指定编码格式四、特色方法1.原创 2020-05-09 00:33:24 · 1182 阅读 · 0 评论 -
Java IO 读取类对象的流 ObjectInputStream,ObjectOutputStream 使用教程.
一、读取类对象的流 ObjectInputStream,ObjectOutputStream 可以将 对象的实例序列化,和反序列化(不懂没关系看代码)二、练习1.要求:储存一个实例化的CriminalSuspect 嫌疑人对象 到txt文件,然后读取出来.2.分析: 读取类对象的流 ObjectInputStream,ObjectOutputStream一、作用 : 对象IO流可以储存和取出对象的序列,要求 对象必须实现接口 序列化接口Serializable接口二、使用方法1.构造ne原创 2020-05-08 22:04:14 · 1851 阅读 · 3 评论 -
Java IO 解决字符编码乱码的问题的类InputStreamReader ,OutputStreamWriter 使用教程.
解决字符编码的问题的读写类例子1.创建一个指定UTF-8的txt,然后用GBK和UTF-8依次读取测试:package Java学习.Java高级.IO.编码格式转换流InputStreamReader.指定编码的读写;import java.io.*;import java.nio.charset.StandardCharsets;/** * 一、.写 OutputStreamWriter 继承 Writer(只是构造不同)---------- * 1.构造 1. * OutputSt原创 2020-05-08 21:13:24 · 1956 阅读 · 1 评论 -
Java IO 总结。 字节流,字符流,Buffer缓冲,Properties集合IO 解决字符编码的问题的类 序列化和反序列化 等,
总结IO的所有常用类和知识.一、File类,顶级文件类File类的使用总结二、4个顶级流。(2 个字节流顶级类 和 2个字符流顶级类)输入流输出流字节流InputStreamOutputStream字符流ReaderWriterOutputStream InputStream 读写字节流Reader,Writer类 读写字符 用法详解教程三、P...原创 2020-05-08 17:30:52 · 310 阅读 · 0 评论 -
Java IO 4个Buffed的缓冲顶级类(比如bufferedInputStream)的 总结教程
原理:Buffered的原理和之前数组增加复制图片速度的原理一致点击查看一、bufferedInputStream,bufferedOutputStream,1.总结一、原理,读取单个字节太慢,5000毫秒我们用一个数组来代替很快 0毫秒就可以,Buffer就是一个默认长度的数组.二、BufferInputStream extends InputStream.继承所有方法使用方法一致...原创 2020-05-08 17:20:08 · 354 阅读 · 0 评论 -
Java IO Properties类 可以IO的集合 的总结 使用教程
Properties类是唯一几个可以作用于IO的集合。一、Properties储存数据和遍历y1.常用方法Proerties 是Map的子类,HashTable的子类二、Properties 类的常用方法1.setProperty(String key,String value) 类似于 put(Key key,Value value)2.getProperty(String key...原创 2020-05-08 15:30:04 · 213 阅读 · 0 评论 -
Java IO Reader,Writer类 读写字符 用法详解教程。
Reader 和 writer 是转么用来读取字符的,避免了很多的字符乱码问题,读取字符十分的方便。但是不能像InputStream 和 OutputStream 用于读取图片,视频等,只能用于读取字符.一、Reader类读取字符,1. 构造方法,我们这里使用 FileReader类Reader reader = new FileReader(url);url用法和之前的File,I...原创 2020-05-08 12:30:44 · 2342 阅读 · 0 评论 -
Java IO教程 OutputStream InputStream 读写字节流
一、首先了解IO流的4个顶级的父类1. 表格总结.输入流输出流字节流InputStreamOutputStream字符流ReaderWriter二、先学习2个字节流InputStream和OutputStream1.字符,字节,01进制的关系?...原创 2020-05-08 11:00:04 · 4805 阅读 · 0 评论 -
Java 常用类 StringTokenizer 字符串分割 使用教程
StringTokenizer 字符串分词器,用于将字符串进行分割和遍历,非常地方便一、学习一个类先学习它的构造方法.此处3个构造方法。看文档。3个构造方法1. StringTokenizer stringTokenizer = new StringTokenizer(String str);**最常用的构造方法,默认分割符为." \t\n\r\f" :空格字符,制表符,换行字符,回...原创 2020-05-07 16:47:48 · 2700 阅读 · 0 评论 -
Java 高级Java File类的使用总结。
一、File类构造方法3种常见构造方法1.File(String pathname),(最常用)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。2.File(String parent, String child)从父路径名字符串和子路径名字符串创建新的 File实例。3.File(File parent, String child)从父抽象路径名和子路径名字符串...原创 2020-05-04 22:32:48 · 396 阅读 · 0 评论 -
Java 高级 Lambda表达式使用方法。简化匿名内部类的书写的教程
一、Lambda表达式更简单的实现代码package Java学习.Java高级.Lambda表达式.lambda表达式实现多线程;/** * 这个案例展示使用Lambda表达式的使用对比匿名内部类实现多线程的区别 * 更简洁。 * 二、lambda 表达式的标准格式: * 1.参数 * 2.箭头 * 3.方法体的代码 * 三、格式: (参数) -> {一些重写方法的代码...原创 2020-05-04 00:05:12 · 1188 阅读 · 0 评论 -
Java 高级 多线程 多线程的等待唤醒案例wait 代码教程
一、基本的买包子案例。1.目的,顾客点包子,然后等待,老板做包子,做完后通知顾客(唤醒)。2. 先了解线程的6种状态.,此处主要了解 Waiting 状态.一、三种暂停状态1.sleep Thread.sleep(1000)2.lock锁,线程安全的3个解决方案3.wait() :waiting 无限等待,需要notify()方法唤醒3.案例要求和注意事项 * 二、案例要求...原创 2020-05-03 21:23:50 · 607 阅读 · 0 评论 -
Java 高级 多线程 线程安全 3 种常见解决方案教程.
我们在访问多线程的共有变量的时候容易出现线程安全问题详见线程安全问题产生的原理分析一、方案1.同步代码块.1.原理:把同步代码块锁住,只允许一个线程在同步代码块中执行。2.图解:3.使用格式synchronized(锁对象呢){可能出现线程安全问题的代码. }4.代码目的:模拟买票产生的线程安全问题。 * 1.一个 Runnable 接口 创建3 个线程,new Threa...原创 2020-05-03 21:12:05 · 504 阅读 · 1 评论 -
Java 高级 多线程 创建多线程的3种方式.
一、继承 Thread,然后重写run方法1.具体步骤新建 我的多线程.java 类 继承 Thread 重写 run() 方法。Main.java 实现 我的线程 类的实例,然后 myThread.start() 启动 run()方法2,codeMain.javapackage Java学习.Java高级.多线程.多线程方法1;/** * 一、 * 1,我的线程 继承 T...原创 2020-05-03 20:46:04 · 198 阅读 · 0 评论 -
Java 高级,多线程,线程安全产生的原因;多线程问题的代码模拟
一、线程安全产生的原因。1.首先知道新建线程会新建一个栈空间,这是多线程的基本原理。此时我们把 main()的内存成为主内存,其他线程成为工作内存。2.了解 i++;都经历了什么(结合上面的图)int i = 1;i++;复制:复制一份主内存共享变量的int i = 1;到工作内存共享变量的副本中例如 (int i2 = 1;)计算:计算 1 + 1 = 2 ;赋值给副本:...原创 2020-05-01 21:54:32 · 291 阅读 · 0 评论 -
Java 数据结构,可变参数使用教程。
一、使用格式(在定义方法时候使用)1. 方法名( 数据类型…变量名){ }private int addUp(int ... numbers){}2.终极写法(在源码能看到):用Object可传入任意数据类型参数。private int addUp(Object ... numbers){}二、 使用条件1,定义方法,并且参数数量是 0 ,1 ,2…n 的时候三、原理可变...原创 2020-04-29 16:01:35 · 192 阅读 · 0 评论 -
Java 数据结构 哈希表;哈希值的解析和使用教程。
一、哈希表:查询速度非常快。1,哈希表的结构 : 数组 + 链表 + 红黑树 (jdk1.8后) 。数组,链表,红黑树解析2.结构解析:1.数组,按哈希值是否相同分组,2.链表,哈希值相同的元素用链表吊在一个数组元素下面,3.红黑树,如果吊在下面的链表长度大于8 ,则链表转化为红黑树,增加查询速度。二、哈希值1.什么是哈希值?哈希值是一个10进制的int 类型的数(用来模拟地址...原创 2020-04-29 15:53:13 · 1563 阅读 · 0 评论 -
Java 数据结构 数组,链表和树的区别解析教程;
Java 数据结构 数组,链表和树的区别解析教程;一、数组:增删慢,查询快1.增删慢:数组的长度是固定的,删除一个元素,必须经过以下4步骤。1.先创建一个新的数组,长度为原来的 -12.把 其他的元素复制到新的数组中3.把新数组的首地址赋值给原来的变量4.垃圾回收会...原创 2020-04-29 15:36:46 · 1530 阅读 · 0 评论 -
Java 数据结构 栈和队列的区别;栈和堆的区别 解析教程;
一、栈Stack 和 队列Queue 的区别1.栈Stack 就像一个框,单出口, 先进后出2.队Queue 列就像排队,双出口,先进先出3. 实例代码参考二、Java 堆Heap 和 栈 Stack的区别(Java的内存只有2种堆和栈,注意区分和数据结构和内存的区别)1. 基本数据类型和引用变量的变量名都在栈中。1.有哪些基本数据类型?八大数据类型:int, short, lo...原创 2020-04-29 15:04:05 · 459 阅读 · 0 评论 -
Java 集合 LinkdedList 教程 LikedList的特性、LinkedList常用方法、LinkedList 和 ArrayList的区别
一 、特性1. LinkedList 是 链表Link结构 增删快,查找慢ArrayList 是数组Arrays 增删慢,查找快,下面 三、节点处会介绍.2. 实现非同步,(可多线程)二、常用方法,1.LinkedList 实现 顶级 集合 Collection 所以 拥有 Conlection所有的常用类。一、共性方法: 1.add(): 添加对象到集合 2.re...原创 2020-04-27 21:15:33 · 570 阅读 · 0 评论 -
Java 集合List用法教程,List和Collection集合的区别、List的特点和区别于Collection的特有方法教程
一、List是继承extends集合Collection的 一个集合类,拥有Collection特性的同时还有一些自己的特性。1,回顾下Collection的常用6种方法, 1.add() -- boolean 2.remove(E e) -- 返回被删除的元素 e 3.size() 4.toArray() 转化为数组 5.isEmpty() 判...原创 2020-04-27 17:15:34 · 550 阅读 · 0 评论 -
Java 集合 ,集合项目斗地主洗牌游戏模拟教程,洗牌算法,;给牌排序 教程 源码。
一、思路解析:1.要求2.要求分析:3.项目结构图:二、代码解释:1. Main.java 调用new GameStart() 主要功能在 后者里实现.这里只打印了第一个人person1 的牌,你也可以按照类似的方法查看其他人的牌或者剩下的底牌。package Java学习.Java高级.集合.斗地主小游戏;public class Main { public st...原创 2020-04-27 11:41:55 · 492 阅读 · 0 评论 -
Java 泛型教程 : 定义、泛型使用、不用泛型可能造成的错误、如何自制泛型类、泛型方法、泛型接口教程
一、定义:泛型是一种未知的数据类型,当我们不知道使用什么数据类型的时候使用泛型代替作用就像实现了所有类型的重载,在定义的时候使用当作未知类型,在使用的时候new 的时候才确定具体的数据类型。二、用法:方法中代替未知数据类型的数组或者集合(作用就像实现了所有类型的重载)1.使用泛型广泛代替 数组 参数的类型,void 放回类型前一个<E>参数的数组[]前一个:E方...原创 2020-04-26 17:28:24 · 490 阅读 · 0 评论 -
Java 集合 Collection 集合框架介绍,集合的框架,集合 Collection常用方法。
一、集合框架1.集合框架图来自菜鸟教程2.学习集合学习目标:1.会储存–如何储存数据2.会取出 – 学会遍历集合,取出数据3.会特性 – 掌握每种集合的特性和优劣学习方法1.学习顶层:学习顶层接口的方法,一劳永逸所有底层2.使用底层:…二、Collection集合1.图解:视频教程2.Collection 中共性的方法。...原创 2020-04-26 16:22:04 · 271 阅读 · 0 评论 -
Java 常用类 Runtime类使用教程,详细解析,
主要作用:Runtime可以查看和控制虚拟机的状态和行为:一、获取Runtime对象,因为Runtime无法直接new 所以使用这个创建对象Runtime runtime = Runtime.getRuntime();二、常用方法: * (1) freeMemory():该方法用于返回Java虚拟机中的空闲内存量,以字节为单位。 * (2) maxMemory()...原创 2020-04-26 10:51:30 · 1606 阅读 · 0 评论 -
Java 集合 ArrayList类使用教程,ArrayList常用方法,使用泛型广泛代替传入ArrayList参数,ArrayList 的几个练习题教程,ArrayList和LinkdeList区别
ArrayList类解决对象数组的长度不可变的问题。一、基本使用方法1.基本创建方法ArrayList<String> arrayList = new ArrayList<>();Note:解决对象数组的长度不可变的问题。ArrayList E 表示泛型,规范ArrayList只能储存的数据类型注意:泛型只能是引用类型Integer不能是基本类型int直...原创 2020-04-26 10:32:31 · 1183 阅读 · 0 评论 -
Java 常用类 包装类Integer;包装类的自动拆箱和自动装箱;基本数据类型和字符串之间的相互转换教程
一、包装类概述1. Java 提供 2 种 类型系统,基本类型 和引用类型,基本类型方便,效率;但是有时后我门要对基本类型进行一些操作,则使用包装类new 一个对象(引用类型)然后使用 包装类的方法:基本数据类型 方便,效率 比如:int a = 1;但是包装类有方法可以使用,比如:Integer integer = new Integer();integer.toStrin...原创 2020-04-25 12:03:06 · 341 阅读 · 0 评论 -
Java 常用类StringBuilder类使用教程,String类,StringBuilder类,StringBuffer 类的区别
一、String类,StringBuilder类,StringBuffer 类的区别1.String 和 StringBuilder类的区别,1.String是常量final,String的变化及其消耗内存,2.StringBuider是可边的String,变化速度快,而且超出他的默认长度会自动扩容增加长度,十分方便。(但是官方说多线程会出现安全问题)2.String类,StringBu...原创 2020-04-25 11:05:50 · 238 阅读 · 0 评论 -
Java 常用类 System 类的常用用法和常见方法 教程
一、System类不能被实例化源码解释:二、可用的字段 field1. System.in 标准输入流2. System.out 标准输出流3. System.err 标准错误输出流api 解释:三、System.arraycopy() 复制数组特定部分方法 public static native void arraycopy(Object src, int src...原创 2020-04-25 09:47:53 · 522 阅读 · 0 评论 -
Java 常用类 Calendar类 ,日历类使用详细教程。
一、Calendar日历类的使用方法。1.Calendar 类是一个抽象类,不能直接new常用的方法是 Calender.getInstance();返回 Calendar子类的实例。Calendar calendar = Calendar.getInstance();这是一个类的多态的实现,左父右子(左边父类的引用指向了子类的对象)2. 新建的calendar日历对象输出会返回一连串...原创 2020-04-24 23:54:12 · 3066 阅读 · 0 评论 -
Java 常用类 基础 Integer类使用,进制转换 教程
一、包装类对应的基本数据类型Integer – intCharacter – char二、Integer类的常用用法:1.输出Integer基本信息System.out.println("the max number of int is :"+Integer.MAX_VALUE);System.out.println("the min number of int is : "+Inte...原创 2020-04-24 12:04:12 · 324 阅读 · 0 评论 -
Java 常用类 Math类的使用教程
一、Java常用类Math类的用法1.输出Π的值:System.out.println("圆周率Π的值为:" + Math.PI);//圆周率Π的值为:3.1415926535897932.三角函数运算: System.out.println("圆周率Π的值为:" + Math.PI); System.out.println("sin(90')=" + Math.sin(Ma...原创 2020-04-24 11:53:47 · 1982 阅读 · 0 评论 -
Java 常用类Data和Format类 使用教程
一、Date类使用方法。1. new Date() 返回当前时间Date date = new Date();System.out.println(date);//输出当前的时间。源码解释为:2. new Date(10006060*24); 返回 从 Fri Jan 01 08:00:00 CST 1970经过1天的时间long time = 1000*60*60*24;Dat...原创 2020-04-24 11:39:14 · 966 阅读 · 0 评论 -
java 自制异常实例案例,继承异常即可,自制异常教程
如果自带的异常类型无法满足异常则可以自定义异常,一、自定义条件1.继承一个异常(例如Exception)2.重写Override toStirng()方法异常的输出信息,二、注意事项.1.catch捕获异常后要在catch中处理异常2,使用尽量使用finally释放占用的资源,IO Scanner等.四、代码1. Exception.javapackage opp.自定义异常经验...原创 2020-04-17 09:55:29 · 318 阅读 · 0 评论 -
Java异常,exception 和错误 error异常的5个关键词try catch finally throw thorws.
捕获异常可以让即是程序出现错误也不会终止运行,还可以处理异常.一、异常处理框架.二、异常处理的5个关键词.1.try 尝试,2.catch 捕获异常.3.finally :无论是否异常都会执行.4.throw :用于方法中抛出异常,5.throws: 用于方法修饰,抛出异常.三、实例1.try catch finally 组合使用.package opp.Exception异...原创 2020-04-17 07:21:18 · 759 阅读 · 0 评论