随笔分类 -  学习笔记-JavaSE

摘要:反射(四)获取泛型、注解信息 反射操作泛型 Java采用泛型擦除的机制来引入泛型,Java中的泛型仅仅是给编译器javac使用的,确保数据的安全性和免去强制类型转换问题,但是,一旦编译完成,所有和泛型有关的类型全部擦除 为了通过反射操作这些类型,Java新增了ParameterizedType, G 阅读全文
posted @ 2022-08-05 17:01 GrowthRoad 阅读(132) 评论(0) 推荐(0)
摘要:反射(三)获取并操作对象及方法 获取运行时类的结构 通过反射获取运行时类的完整结构 Field、Method、Constructor、Superclass、Interface、Annotation... 我们以User类为例: class User{ private String name; pri 阅读全文
posted @ 2022-08-05 15:32 GrowthRoad 阅读(57) 评论(0) 推荐(0)
摘要:反射(二)之类加载 类加载内存分析 当程序主动使用某个类时,如果该类还未被加载到内存中,则该系统会通过如下三个步骤;来对该类进行初始化。 加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class 对象 链接:将 阅读全文
posted @ 2022-08-04 17:06 GrowthRoad 阅读(36) 评论(0) 推荐(0)
摘要:反射(一)之反射机制、Class类 反射机制 动态 VS 静态语言 动态语言:是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化,通俗点说就是在运行时,代码可以根据某些条件改变自身结构。 主要动态语言: Object-C、C#、Jav 阅读全文
posted @ 2022-08-04 14:20 GrowthRoad 阅读(46) 评论(0) 推荐(0)
摘要:注解 注解概念 mybatis、springboot 等框架的底层实现机制就是注解和反射 注解(Annotation) 是JDK5.0开始引入的新技术 Annotation 的作用: 不是程序本身,可以对程序做出解释 (和注释相同) 可以被其他程序(比如:编译器)读取,通过反射读取 Annotati 阅读全文
posted @ 2022-08-04 10:08 GrowthRoad 阅读(24) 评论(0) 推荐(0)
摘要:线程(八)之线程通信 生产者消费者问题 这是一个线程同步问题,生产者和消费者共享同一个资源,并且生产者和消费者之间互相依赖,互为条件 对于生产者,没有生产产品之前,要通知消费者等待,而生产了产品之后,又需要马上通知消费者消费 对于消费者,在消费之后,要通知生产者已经结束消费,需要生产新的产品以供消费 阅读全文
posted @ 2022-08-03 09:41 GrowthRoad 阅读(145) 评论(0) 推荐(0)
摘要:线程(七)之死锁、Lock锁 死锁 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。 某一个同步块同时拥有“两个以上对象的锁”时,就可能发生“死锁”的问题 我们用一个化妆的例子来了解死锁 小红先锁住了口红,然后一秒钟 阅读全文
posted @ 2022-08-02 15:54 GrowthRoad 阅读(55) 评论(0) 推荐(0)
摘要:线程(六)之线程同步 线程同步 并发:同一个对象被多个线程同时操作 上万人同时抢100张票 两个银行同时取钱 在现实生活中,我们遇到“同一个对象被多个线程同时操作”这种问题,比如食堂打饭,解决办法就是排队 处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时候我们就需要线程同 阅读全文
posted @ 2022-08-02 11:51 GrowthRoad 阅读(48) 评论(0) 推荐(0)
摘要:线程(五)线程优先级、守护线程 线程优先级 Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按学号优先级决定应该调度哪个线程来执行。 线程优先级用数字表示,范围从1~10,在Thread中定义了几个常量来表示优先级 Thread.MIN_PRIORITY = 1; Th 阅读全文
posted @ 2022-08-01 16:57 GrowthRoad 阅读(45) 评论(0) 推荐(0)
摘要:线程(四)之线程状态 线程五大状态 创建状态:new一个Thread 就绪状态:调用start() 运行状态:cpu调用 阻塞状态:当调用sleep() wait() 或同步锁定时 死亡状态:正常执行完 停止线程 不推荐使用JDK 提供的 stop() destroy()方法【已废弃】 推荐线程自己 阅读全文
posted @ 2022-08-01 10:48 GrowthRoad 阅读(41) 评论(0) 推荐(0)
摘要:线程(三)之Lambda表达式 Lambda 表达式 为什么要使用Lambda表达式 为了避免匿名内部类定义过多 可以让代码看起来很简洁 去掉一些没有意义的代码,只留下核心的逻辑 函数式接口(Functional Interface) 定义:任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式 阅读全文
posted @ 2022-07-31 18:34 GrowthRoad 阅读(196) 评论(0) 推荐(0)
摘要:线程(二)之静态代理模式 静态代理模式的简介 下面我们写一段代码了解一下静态代理模式 package com.thread.demo02; ​ public class StaticProxy { public static void main(String[] args) { You you = 阅读全文
posted @ 2022-07-31 16:58 GrowthRoad 阅读(52) 评论(0) 推荐(0)
摘要:线程(一)之线程概念及创建 线程简介 多任务: 边吃饭,边玩手机 开车打电话 现实中有很多这样的例子,看起来是多个任务在做,其实本质上我们的大脑在同一时间只做了一件事 多线程: 执行main方法时,如果在main方法中调用了其他方法,就会出去main方法,去执行其他方法,然后在回来,多线程就实现了多 阅读全文
posted @ 2022-07-31 16:11 GrowthRoad 阅读(59) 评论(0) 推荐(0)
摘要:网络编程之URL URL URL 是 统一资源定位符,用来定位互联网上的某一个资源,比如 www.baidu.com DNS 是域名解析,把域名解析成IP地址 格式: 协议://IP地址:端口/项目名/资源 URL 类中的方法: package com.network.url; ​ import j 阅读全文
posted @ 2022-07-30 16:45 GrowthRoad 阅读(35) 评论(0) 推荐(0)
摘要:网络编程之UDP UDP 发送消息 发送端: 建立一个DatagramSocket,用来传输 创建一个数据包 DatagramPacket 参数:发送的数据、数据的起始长度,要发给谁(ip地址,端口号) 用send() 方法 发送数据包 关闭 package com.network.udp; ​ i 阅读全文
posted @ 2022-07-30 16:16 GrowthRoad 阅读(43) 评论(0) 推荐(0)
摘要:网络编程之TCP TCP 通信 通过TCP协议,实现客户端和服务端之间的通信 服务端: 需要有一个地址及端口号 ServerSocket 类可以创建服务端套接字,它有四个构造方法 Constructor and Description ServerSocket()创建未绑定的服务器套接字。 Serv 阅读全文
posted @ 2022-07-29 16:27 GrowthRoad 阅读(44) 评论(0) 推荐(0)
摘要:IO 流(三) File 类 我们使用流的方式可以读取和写入内容,但是像删除、剪切文件、获取文件创建时间等等这样的操作,我们使用流就不能实现了,所以我们学习一下 File 类的使用 概念:代表物理盘符中的一个文件或文件夹 方法: createNewFile() //创建一个文件 mkdir() // 阅读全文
posted @ 2022-07-28 10:08 GrowthRoad 阅读(29) 评论(0) 推荐(0)
摘要:IO 流 (二) 字符编码 ISO-8859-1 收录了除ASCII 外,还包括西欧、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。采用一个字节来表示,最多只能表示256个字符 UTF-8 针对Unicode码表的可变长度字符编码,采用一个两个或三个字节来表示 GB2312 简体中文 采用一个或两 阅读全文
posted @ 2022-07-27 15:58 GrowthRoad 阅读(39) 评论(0) 推荐(0)
摘要:IO 流 流的概念 流是内存与存储设备之间传输数据的通道。 如果保存在内存中的程序,想要读取硬盘中的文件,那么内存和硬盘之间就要建立一条通道。反之如果想要把内存中的数据保存到硬盘中,也需要建立一条通道 数据借助流传输,就像水借助管道传输 流的分类 按方向: 输入流:将<存储设备>中的内容读入到<内存 阅读全文
posted @ 2022-07-26 16:37 GrowthRoad 阅读(42) 评论(0) 推荐(0)
摘要:集合(四) Map集合 Map接口特点: 用于存储任意键值对(KEY-Value) 键:无序、无下标、不允许重复 值:无序、无下标、允许重复 Map接口的方法: V put(K key,V value) //将对象存入集合中,关联键值,key重复则覆盖原值 Object get(Object key 阅读全文
posted @ 2022-07-25 18:41 GrowthRoad 阅读(35) 评论(0) 推荐(0)