java
文章平均质量分 71
.诗酒趁年华
老男孩
展开
-
Java 网络编程系列之 NIO
Java 网络编程系列之 NIO 第 1 章Java NIO 概述1.1 IO 概述 IO 的操作方式1.2 阻塞 IO (BIO)1.3 非阻塞 IO(NIO)1.4 异步非阻塞 IO(AIO)第 1 章Java NIO 概述1.1 IO 概述 IO 的操作方式IO 概述 IO 的操作方式通常分为几种:同步阻塞 BIO、同步非阻塞 NIO、异步非阻塞 AIO。(1)在 JDK1.4 之前,我们建立网络连接的时候采用的是 BIO 模式。(2)Java NIO(New IO 或 Non Blocki原创 2022-05-28 16:34:35 · 237 阅读 · 0 评论 -
JUC高并发编程
JUC 高并发编程1 什么是 JUC1.1 JUC 简介1.2 进程与线程1.3 线程的状态1.3.1 线程状态枚举类1.3.2 wait/sleep 的区别1.4 并发与并行1.4.1 串行模式1.4.2 并行模式1.4.3 并发1.4.4 小结(重点)1.5 管程1.6 用户线程和守护线程2 Lock 接口2.1 Synchronized2.1.1 Synchronized 关键字回顾2.1.2 售票案例2.2 什么是 Lock2.2.1 Lock 接口2.2.2 lock2.2.3 newCondit原创 2022-05-23 11:50:48 · 192 阅读 · 0 评论 -
java基础之Stream
1.Stream和集合的区别Stream关注的是对数据的运算,与CPU打交道;集合关注的是数据的存储,与内存打交道2.什么是Stream是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。“集合讲的是数据,Stream讲的是计算!”注意 ①Stream 自己不会存储元素。 ②Stream 不会改变源对象。相反,他们会返回一个持有结果的新Stream。 ③Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行3.Stream 的操作三个步...原创 2022-04-07 10:21:26 · 438 阅读 · 0 评论 -
java8新特性之Lambda表达式
1、Lambda表达式的使用1.格式(o1,o2) -> Integer.compare(o1,o2); -> :lambda操作符 或 箭头操作符 ->左边:lambda形参列表 (其实就是接口中的抽象方法的形参列表) ->右边:lambda体 (其实就是重写的抽象方法的方法体)2. Lambda表达式的使用总结 ->左边:lambda形参列表的参数类型可以省略(类型推断);如果lambda形参列表只有一...原创 2022-04-01 15:48:22 · 670 阅读 · 0 评论 -
java基础之反射
1、关于java.lang.Class类的理解 1.类的加载过程: 程序经过javac.exe命令以后,会生成一个或多个字节码文件(.class结尾)。 接着我们使用java.exe命令对某个字节码文件进行解释运行。相当于将某个字节码文件 加载到内存中。此过程就称为类的加载。加载到内存中的类,我们就称为运行时类,此 运行时类,就作为Class的一个实例。 2.换句话说,Class的实例就对应着一个运行时类。 3.加载到内存中的运行时类,会缓存一定的时...原创 2022-03-31 14:55:02 · 82 阅读 · 0 评论 -
java基础之网络编程
1、网络编程中有两个主要的问题1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用 2.找到主机后如何可靠高效地进行数据传输2、网络编程中的两个要素 1.对应问题一:IP和端口号 2.对应问题二:提供网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)3、通信要素一:IP和端口号 1. IP:唯一的标识 Internet 上的计算机(通信实体) 2. 在Java中使用InetAddress类代表IP 3. IP分类:IPv...原创 2022-03-30 16:00:22 · 93 阅读 · 0 评论 -
java基础之IO流
1、流的分类 1.操作数据单位:字节流、字符流 2.数据的流向:输入流、输出流 3.流的角色:节点流、处理流2、流的体系结构分类 字节输入流 字节输出流 字符输入流 字符输出流 抽象基类 InputStream OutputStream Reader Writer 访问文件(节点流或文件流) FileInputStream(read(byte[] buffer)) FileOutputStream(write(b...原创 2022-03-29 11:13:27 · 181 阅读 · 0 评论 -
java基础之 File类的使用
1、File类的使用 1. File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹) 2. File类声明在java.io包下 3. File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法, 并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。 4. 后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的"终点".import org.junit.Test;import java.io...原创 2022-03-28 10:34:08 · 1167 阅读 · 0 评论 -
java基础之泛型
1、泛型的使用1.jdk 5.0新增的特性2.在集合中使用泛型: 总结: ① 集合接口或集合类在jdk5.0时都修改为带泛型的结构。 ② 在实例化集合类时,可以指明具体的泛型类型 ③ 指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如:方法、构造器、属性等)使用到类的泛型的位置,都指定为实例化的泛型类型。 比如:add(E e) --->实例化以后:add(Integer e) ④ 注意点:泛型的类型必须是类,不能是基本数据类型。需要用到基本数据类...原创 2022-03-26 16:11:59 · 115 阅读 · 0 评论 -
java基础之集合(二)
1、Map的实现类的结构 |----Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y = f(x) |----HashMap:作为Map的主要实现类;线程不安全的,效率高;存储null的key和value |----LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。 原因:在原有的HashMap底层结构基础上,添加了一对指针,指向前一个和后一...原创 2022-03-25 16:46:16 · 161 阅读 · 0 评论 -
java基础之集合(一)
1、集合框架的概述 1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器。 说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中) 2.1 数组在存储多个数据方面的特点: > 一旦初始化以后,其长度就确定了。 > 数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。 比如:String[] arr;int[] arr1;Object[] arr......原创 2022-03-25 10:51:02 · 149 阅读 · 0 评论 -
java基础之枚举类和注解的使用
1、枚举类的使用1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类2.当需要定义一组常量时,强烈建议使用枚举类3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。1. 如何定义枚举类方式一:jdk5.0之前,自定义枚举类方式二:jdk5.0,可以使用enum关键字定义枚举类2. Enum类中的常用方法values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值valueOf(String str):可以把一个字符串转为对应的...原创 2022-03-24 10:34:09 · 905 阅读 · 0 评论 -
java基础之java常用类
1、String类string类的使用import org.junit.Test;/** * String的使用 * */public class StringTest { /* 结论: 1.常量与常量的拼接结果在常量池。且常量池中不会存在相同内容的常量。 2.只要其中有一个是变量,结果就在堆中。 3.如果拼接的结果调用intern()方法,返回值就在常量池中 */ @Test public void test.原创 2022-03-24 10:14:04 · 77 阅读 · 0 评论 -
java基础之多线程
1、多线程的创建方式一:继承于Thread类1. 创建一个继承于Thread类的子类 2. 重写Thread类的run() --> 将此线程执行的操作声明在run()中 3. 创建Thread类的子类的对象 4. 通过此对象调用start()/** 例子:遍历100以内的所有的偶数*///1. 创建一个继承于Thread类的子类class MyThread extends Thread { //2. 重写Thread类的run() @Overri...原创 2022-03-23 17:43:33 · 100 阅读 · 0 评论 -
java基础之异常处理
1、异常体系结构 java.lang.Throwable |-----java.lang.Error:一般不编写针对性的代码进行处理。 |-----java.lang.Exception:可以进行异常的处理 |------编译时异常(checked) |-----IOException |-----FileNotFoundException...原创 2022-03-23 15:39:15 · 86 阅读 · 0 评论 -
java基础之面向对象(六)
1、abstract关键字的使用 1.abstract:抽象的 2.abstract可以用来修饰的结构:类、方法 3. abstract修饰类:抽象类 > 此类不能实例化 > 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程) > 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作 4. abstract修饰方法:抽象方法 > 抽象方法只有方法的声明,没有方法体...原创 2022-03-23 11:04:32 · 147 阅读 · 0 评论 -
java基础之面向对象(五)
1、java.lang.Object类1.Object类是所有Java类的根父类 2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 3.Object类中的功能(属性、方法)就具有通用性。 属性:无 方法:equals() / toString() / getClass() /hashCode() / clone() / finalize() wait() 、 notify()、notifyAll()...原创 2022-03-22 11:45:27 · 100 阅读 · 0 评论 -
java基础之面向对象(四)
面向对象原创 2022-03-21 16:19:21 · 93 阅读 · 0 评论 -
Eclipse中的快捷键
1.补全代码的声明:alt + / 2.快速修复: ctrl + 1 3.批量导包:ctrl + shift + o 4.使用单行注释:ctrl + / 5.使用多行注释: ctrl + shift + / 6.取消多行注释:ctrl + shift + \ 7.复制指定行的代码:ctrl + alt + down 或 ctrl + alt + up 8.删除指定行的代码:ctrl + d 9.上下移动代码:alt + up 或 alt + down 10...原创 2022-03-21 15:08:52 · 246 阅读 · 0 评论 -
java基础之面向对象(三)
1、封装与隐藏/* * 面向对象的特征一:封装与隐藏 3W:what? why? how? * 一、问题的引入: * 当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值。 * 这里,赋值操作要受到 * 属性的数据类型和存储范围的制约。除此之外,没有其他制约条件。但是,在实际问题中, * 我们往往需要给属性赋值 * 加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件 * 的添加。(比如:setLegs()).原创 2022-03-21 15:03:46 · 56 阅读 · 0 评论 -
java基础之面向对象(二)
1、理解“万事万物皆对象”/* * 一、理解“万事万物皆对象” * 1.在Java语言范畴中,我们都将功能、结构等封装到类中,通过类的实例化,来调用具体的功能结构 * >Scanner,String等 * >文件:File * >网络资源:URL * 2.涉及到Java语言与前端Html、后端的数据库交互时,前后端的结构在Java层面交互时,都体现为类、对象。 * * 二、内存解析的说明 * 1.引用类型的变量,只可能存储两类值:null 或 地址原创 2022-03-21 13:42:07 · 123 阅读 · 0 评论 -
java基础之面向对象(一)
1、Java面向对象学习的三条主线1.Java类及类的成员:属性、方法、构造器;代码块、内部类2.面向对象的三大特征:封装性、继承性、多态性、(抽象性)3.其它关键字:this、super、static、final、abstract、interface、package、import等2、“人把大象装进冰箱”1.面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。① 把冰箱门打开② 抬起大象,塞进冰箱② 把冰箱门关闭2.面向对象:强调具备了功能的对象,以类/对象为最小.....原创 2022-03-18 10:41:34 · 101 阅读 · 0 评论 -
java基础之数组常见案列
1、数组中的常见异常/* * 数组中的常见异常: * 1. 数组角标越界的异常:ArrayIndexOutOfBoundsExcetion * * 2. 空指针异常:NullPointerException * */public class ArrayExceptionTest { public static void main(String[] args) { //1. 数组角标越界的异常:ArrayIndexOutOfBoundsExcetion int[] ar原创 2022-03-16 14:50:49 · 330 阅读 · 0 评论 -
java基础之数组
数组原创 2022-03-16 14:23:39 · 616 阅读 · 0 评论