JAVA_SE高级
文章平均质量分 56
JAVA_SE高级
临水而愚
滴水穿石,事在人为。
展开
-
Stream
Stream创建Stream -> 中间操作 -> 终止操作Stream是数据渠道,适用于数据源(集合,数组等)生成的元素序列Stream 自己不会储存元素Stream 不会改变源对象,相反,他们会返回一个持有结果的新SteamStream操作是延迟执行的,这表示他们会等到需要结果的时候才回去执行使用流程创建Stream // 创建Stream的几种方式 @Test public void test1(){ //1. 创建Stream原创 2021-03-01 14:05:47 · 6973 阅读 · 2 评论 -
Lambda表达式
Java8新特性Lambda表达式java8引入了一个新的操作符 -> ,该操作符称为箭头操作符或Lambda操作符,箭头将Lambda表达式分为两个部分左侧: Lambda表达式的参数列表右侧: Lambda表达式需要执行的功能,即lambda体语法格式Lamdba的参数类型可以不写,Java8可以根据上下文推断出其数据类型无参数,无返回值 @Test public void test1(){ int num = 0; Runn原创 2021-02-27 16:59:36 · 6855 阅读 · 0 评论 -
代理
代理通过代理类完成全部代理动态代理关于Proxy.newProxyInstance和InvocationHandlernewProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)是用于动态生成代理类。参数:1.loader: 类加载器2.interfaces:动态代理类需要实现的接口3.h:动态代理方法在执行时,会调用h里面的invoke方法去执行。InvocationH原创 2021-02-22 12:22:24 · 6965 阅读 · 0 评论 -
反射
反射(reflection)允许在程序执行期间,借助Reflection APi取得任何类的内部信息,并可以直接操作任意对象的内部属性及方法java.lang.Class:代表一个类,java.lang.reflection.*;等等是反射的主要API关于java.lang.Class的理解类加载的过程程序经过javac.exe命令后,会生成一个或多个字节码文件(.class文件)使用java.exe命令对某个字节码文件进行解释运行(将文案加载到内存中,即内存加载)加载到内存的类.就是原创 2021-02-22 09:44:07 · 6899 阅读 · 0 评论 -
IO与网络
IO对象流用于存储和读取基本数据类型或对象的处理流序列化 ObjectOutputStream 保存基本数据类型或对象反序列化 ObjectInputStream 读取基本数据类型或对象如果对象是序列化的,则对象需要实现Serializable,再需要当前提供一个全局serialVersionID常量,并且类的属性必须都是可以序列化的public class Test { public static void main(String[] args) throws IOExceptio原创 2021-02-20 11:51:47 · 6915 阅读 · 0 评论 -
IO_Day01
IO用于处理设备之间的数据传输输入input:读取外部数据到程序中输出output:将程序数据输出到磁盘,光盘等存储设备中区分按照数据单位不同分为,字节流(8bit = 1 byte),字符流(16bit = 2byte = 1char)按照数据流向不同分为 输入流 和 输出流按流的角色不同分为,节点流,处理流抽象基类 字节流 字符流输入流 InputStream Reader输出流 OutputStream W原创 2021-02-18 17:45:40 · 6986 阅读 · 0 评论 -
泛型与File
泛型(JDK5.0后)把元素的类型设计成参数,这个类型参数叫泛型Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生 ClassCastException异常。同时,代码更加简洁、健壮。public class Test1 { public static void main(String[] args) { HashMap<String,Integer> hashMap = new HashMap<>(); hashMa原创 2021-02-17 09:38:49 · 6899 阅读 · 0 评论 -
集合_Day03
Map/----Map : 存储双列数据[key-value] /----HashMap : 作为Map的主要实现类 (线程不安全,效率高,可以存储null的key和value) /----LinkedHashMap : 保证在遍历map元素时,可以按照添加的顺序遍历 (在原有的HashMap的层结构基础上,添加的了一对指针,只想前一个节点和后一个节点) (对于频繁的原创 2021-02-13 21:29:57 · 6971 阅读 · 0 评论 -
集合_Day02
Set (存储无序,不可重复)Set接口中没有定义过新的方法,使用的都是Collecion中的方法无序性 : 存储的数据在底层数组中并非按照数组索引的顺序添加,而是根据HashCode排序的不可重复性 : 保证添加的元素安好equals()判断时,不能返回true,即相同元素只能添加一个HashSet (底层:数组+链表)添加元素的过程向HashSet添加元素a,首先调用元素a所在类的hashCode()方法,计算其哈希值此哈希值通过某种算法算出在HashSet底层数组中存放的位置(索原创 2021-02-10 20:25:20 · 6927 阅读 · 0 评论 -
集合_Day01
集合集合用于存储数量不等的多个对象,还可以用于保存有映射关系的关联数组(存储是指在内存层面的)Collection接口|------Collection接口 : 单列集合,用来存储一个一个的对象 |------List 存储有序,重复的 |----- ArrayList (线程不安全, 效率高,底层使用Object[]存储) |----- LinkedList (底层使用双向链表,对于频繁的插入,删除操作,使用LinkedList效原创 2021-02-09 19:55:06 · 6957 阅读 · 0 评论 -
枚举类与注解
枚举类型(ENUM)当类的对象只是有限个,是确定的。例如性别:男 女 这样的确定对象个数。且当需要定义一组常量时,也强烈推荐使用枚举类枚举类的使用自定义枚举类public class Test { public static void main(String[] args) { System.out.println(Season.SPRING.getName()); }}class Season{ //1. 声明对象属性 private原创 2021-02-08 15:31:40 · 6927 阅读 · 0 评论 -
常用类_Day02
JDK1.8之前的时间APISystem类 java.util.Date类 |---java.sql.Date类 对应数据库中的日期类型的变量toString()方法:显示当前的年 月 日 时 分 秒getTime()方法: 获取当前Date对象对应的毫秒数(时间戳)public class Test { public static void main(String[] args) { // System类中的currentTimeMillis(原创 2021-02-07 18:31:13 · 6796 阅读 · 0 评论 -
常用类_Day01
常用类StringString 字符串 使用一对"“引起来表示1.String声明为final的,不可被继承2.String实现了Serializable接口,表示字符串是支持序列化的String实现了Serializable接口,表示字符串是支持序列化的3.String在内部定义了final char[] value用于存储字符串数据4.String代表不可变的字符序列,即 不可变性5.通过字面量的方式定义(不同于new)给一个字符串赋值,此时声明的字符串值存储在方法区中6.字符床常量原创 2021-02-06 14:34:14 · 6971 阅读 · 1 评论 -
多线程_Day02
多线程线程的生命周期新建 : (初始状态)调用Thread子类对象的start()方法就绪 : 获取CPU执行权进入就绪状态, 如果失去执行权或调用yield()方法就会到新建状态运行 : 在获取就绪状态时开始运行run()方法, 或线程调用stop()以及出现异常没处理线程结束死亡 : (最终状态)程序结束运行阻塞 : (不是最终状态)线程在执行时调用sleep(long millis)和join()方法以及等待同步锁,wait(),suspend()线程的同步多个线程执行的原创 2021-02-04 21:32:56 · 6988 阅读 · 0 评论 -
多线程_Day01
多线程程序 进程 线程程序是为了完成特定的任务,用某种语言编写的一组指令的集合,通常指一段静态的代码进程是程序的一次成型过程或者是正在运行的程序,是一个动态的过程,有它自身的产生,存在和消亡的过程,称为生命周期线程是进程的细化,是一个进程内部的一个执行路径,多线程的优点提高应用程序的响应提高计算机系统CPU的利用率改善程序结构,将即长有复杂的进程分为多个线程,独立运行,有利于理解和修改线程的创建和使用第一种创建方式创建一个继承Thread类的子类重写父类Thread类ru原创 2021-02-03 16:52:41 · 7012 阅读 · 0 评论