随笔分类 -  JavaSE

摘要:使用反射操作资源(二十七) 类的加载过程 Java中的类是怎样被加载最终被我们使用的呢,在Java中类的记载过程总体分为3步: 装载:查找到类并将类的数据转化成二进制格式保存 链接: 验证:检查类中的格式是否有问题,或者是否有安全问题等 准备:为类中的静态变量分配内存,并给初始化的值 解析:把类中的 阅读全文
posted @ 2021-03-09 23:10 LucaZ 阅读(31) 评论(0) 推荐(0)
摘要:注解与反射 注解 注解是什么? 注解是种特殊的注释,如果说注释是给人看的话,那么注解就是给程序看的。 Java的注解可以分为三类 第一类是由编译器使用的注解,如@Override和@SuppressWarning,这类注解不会被编译进.class文件中,它们在编译后就被编译器抛弃 第二类是由工具处理 阅读全文
posted @ 2021-03-09 18:35 LucaZ 阅读(29) 评论(0) 推荐(0)
摘要:生产者与消费者(二十五) 在多线程的开发中,如果生产者创建资源的速度很快,而消费者消费的速度慢,这时生产者就要去等待消费者,这样会影响到处理的效率,反之亦然。为了处理这样的场景,我们需要准备一个缓冲区,即一个池子,生产者生产好后将资源存在缓冲区中,当缓存区满了就停止生产,消费者直接从缓存区中获取资源 阅读全文
posted @ 2021-03-04 19:32 LucaZ 阅读(40) 评论(0) 推荐(0)
摘要:死锁(二十四) 什么是死锁 死锁指的是两个线程分别获取对方手上的资源,导致两个线程都阻塞,程序卡死的情况。就好比有两个玩具,两个小孩人手一个,这时两个小孩都想要对方手上的玩具;当然,作为人我们可以相互交换,但是计算器没有这么聪明,就相互卡死了。 package com.unsafe; public 阅读全文
posted @ 2021-03-04 17:55 LucaZ 阅读(32) 评论(0) 推荐(0)
摘要:三大线程不安全案例与线程同步(二十三) 不安全的案例 不安全的集合 在下面的例子中,我们创建了1000个线程往List中添加数据,最后输出这个List的长度。运行一下我们发现,List的长度很少能有1000,经常在九百多。这是因为多个线程同时操作了一个数据,有的List元素被更新了,所以长度达不到期 阅读全文
posted @ 2021-03-02 21:40 LucaZ 阅读(49) 评论(0) 推荐(0)
摘要:线程状态(二十二) Daemon守护线程 在Java中我们默认开启的线程都是用户线程,而守护线程的作用就和他的名字一样,是守护着我们的用户线程运行;我们可以把用户线程和守护线程的关系理解成长跑运动员和陪跑员的关系。 我们先看一个例子: package com.thread; public class 阅读全文
posted @ 2021-03-01 23:06 LucaZ 阅读(47) 评论(0) 推荐(0)
摘要:多线程(二十一) 进程是一个独立的运行环境,而线程是在进程中执行的一个任务。他们本质的区别是是否单独占有内存地址空间和其他系统资源(如IO资源)。 实现多线程的几种方式 一、继承Thread类 package com.thread; import java.util.Date; import jav 阅读全文
posted @ 2021-02-28 17:19 LucaZ 阅读(41) 评论(0) 推荐(0)
摘要:Lambda表达式(二十) lambda表达式使用的前提:实现的接口是一个函数式接口(即接口中只定义一个抽象方法) 下面我面在推导下lambda表达式的使用过程 现在我们有一个Run接口,接口中定义了一个running方法,如下 interface Run { void running(int aw 阅读全文
posted @ 2021-02-26 10:23 LucaZ 阅读(38) 评论(0) 推荐(0)
摘要:网络编程(十九) 网络编程基本概念 IP地址:计算机的网络接口(通常是网卡)在网络中的唯一标识;有IPv4和IPv6两种类型 网关:负责连接多个网络,并在多个网络之间转发数据的计算机,通常是路由器或交换机 网络协议:互联网使用TCP/IP协议,它泛指互联网协议簇 TCP协议:一种面向连接,可靠传输的 阅读全文
posted @ 2021-02-24 19:44 LucaZ 阅读(55) 评论(0) 推荐(0)
摘要:IO流(十八) 简介 IO流的IO的意思是指Input和Output, Input指的是从某处读取到程序中来,意为输入;Output指的是从程序写入或传输到某个地方去,意为输出。 IO流中分为字节流和字符流,字节流可以处理图像,视频,文本等内容,而字符流只能处理字符串类型的内容,这个需要在实际使用的 阅读全文
posted @ 2021-02-19 22:06 LucaZ 阅读(46) 评论(0) 推荐(0)
摘要:集合(十七) Collection List List是有序并且可以重复的集合,List常用的有ArrayList和LinkedList ArrayList ArrayList常用的方法: add() 添加元素 remove() 删除元素 contains() 是否包含某个元素 get() 获取元素 阅读全文
posted @ 2021-02-18 18:16 LucaZ 阅读(25) 评论(0) 推荐(0)
摘要:包装类型(十六) 我们已经知道,Java的数据类型分为两种,基本类型和引用类型 基本类型有:byte short int long float double char boolean 引用类型有:类和接口 引用类型可以赋值为null,但基本类型不能赋值为null String s = null; i 阅读全文
posted @ 2021-02-18 17:22 LucaZ 阅读(38) 评论(0) 推荐(0)
摘要:Java常用类(十五) String package com.importc; public class stringDemo01 { public static void main(String[] args) { String s1 = "Hello"; String s2 = "HELLO"; 阅读全文
posted @ 2021-02-18 17:21 LucaZ 阅读(31) 评论(0) 推荐(0)
摘要:面向对象(十四) 抽象类 抽象类就是用abstract关键字修饰的类。 抽象类无法new出实例,只能靠子类去实现 抽象类中可以创建普通的方法 抽象方法(用abstract修饰的方法)只能存在于抽象类中 抽象类 Action package com.oop.demo06; public abstrac 阅读全文
posted @ 2021-02-16 15:59 LucaZ 阅读(32) 评论(0) 推荐(0)
摘要:面向对象(十三) 封装 简单的说,封装就是使用private将属性私有,然后提供get/set方法获取和设置该属性 在idea中,生成get/set方法快捷键:win(alt+insert), Mac(command+n),然后在列表中选择get/set 封装的作用 提高代码的安全性,保护数据 隐藏 阅读全文
posted @ 2021-02-15 22:19 LucaZ 阅读(21) 评论(0) 推荐(0)
摘要:面向对象(十二) 什么是面向对象 面向对象编程(Object-Oriented Programming, OOP) 面向对象编程的本质就是:以类的方式组织代码,以对象的方式组织(封装)数据。 三大特性 封装 继承 多态 类是一个模版,对象是一个具体的实例 创建和初始化对象 使用new关键字创建对象 阅读全文
posted @ 2021-02-14 22:39 LucaZ 阅读(35) 评论(0) 推荐(0)
摘要:数组(十一) 我原本以为Java中的数组与Python中的list差不多,学习之后发觉还是有很大的区别的,总体感觉Java的数组限制要严格许多。 声明和创建数组 数组的创建有两种方式,静态创建(即创建出一个确定值的数组)和动态创建(即创建一个空的数组,可以后续往里面添加值)。 package com 阅读全文
posted @ 2021-02-10 14:38 LucaZ 阅读(47) 评论(0) 推荐(0)
摘要:方法(十) 方法与方法重载 package com.luca.function; public class FunctionDemo1 { public static void main(String[] args) { test(); //方法的调用 FunctionDemo1 functionD 阅读全文
posted @ 2021-02-09 10:59 LucaZ 阅读(39) 评论(0) 推荐(0)
摘要:循环(九) while和do-whlie循环 package com.luca.structs; public class WhileDemo1 { public static void main(String[] args) { //计算1到100的总和 int i = 0; int sum = 阅读全文
posted @ 2021-02-08 13:29 LucaZ 阅读(63) 评论(0) 推荐(0)
摘要:If语句和Switch语句(八) If语句 很简单,直接看例子: package com.luca.structs; import java.util.Scanner; public class IfDemo { public static void main(String[] args) { Sc 阅读全文
posted @ 2021-02-07 22:08 LucaZ 阅读(53) 评论(0) 推荐(0)