Java
文章平均质量分 95
Java 是基础。
willwaywang6
用心学习Android,不辜负经过的每一天.
展开
-
Android筑基——深入理解注解的使用场景及实战
目录1 前言2 正文2.1 注解的作用**编译器可以使用注解做编译期检查**使用注解可以减少重复且易出错的样板代码使用注解可以生成帮助文档2.2 注解的语法定义注解3 最后1 前言注解是在 Java SE5 引入进来的。注解在一定程度上是在把元数据与源代码结合在一起,而不是保存在外部文档中这一大的趋势之下所催生的。因为笔者是作 Android 开发的,因此下面的介绍是偏于 Android 的实际应用。本文会从以下几个方面来展开注解有什么作用?主要是从实际开发中的使用入手来进行说明。注解如何定义原创 2020-12-31 20:17:51 · 1668 阅读 · 2 评论 -
Java筑基——I/O系统学习笔记
之前工作中接触 I/O 较少,只是用一些工具类处理问题。以为这样就可以了。后来在工作中用到多文件传输,文件合并,感到I/O流知识的欠缺。现在有时间把它们总结一下,写成本文。原创 2021-08-26 23:26:36 · 1360 阅读 · 0 评论 -
Java筑基——Serializable序列化接口
本文会通过简单的例子介绍如何对实现了 `Serializable` 接口的类进行序列化和反序列化,这部分是使用 `Serializable` 的入门;接着会重点分析序列化步骤与反序列化步骤,这部分会分析源码,加深对原理的理解;最后会列举实际开发中使用 `Serializable` 接口会遇到的问题并一一进行解决,这部分对开发中会遇到的问题进行填坑。原创 2020-06-21 22:49:08 · 1687 阅读 · 0 评论 -
Java筑基——反射(2):泛型周边信息获取
本文主要介绍获取泛型超类和泛型接口的相关信息;Type 的分类以及在泛型超类和泛型接口中的使用案例。这部分内容不是很好理解,需要好好消化消化。这部分内容算是反射里比较难懂的部分,有必要好好学习掌握,这样才能在阅读源码时更加顺畅。原创 2020-06-07 23:06:38 · 739 阅读 · 0 评论 -
Java筑基——反射(1):基本类周边信息获取
本文会介绍反射相关的知识,为了不和泛型类的方法混在一起,本文集中介绍基本类的反射知识。主要内容包括:- 类的生命周期是什么?- 有几种方式获取类类型,这些方式之间的区别是什么?- 如何获取类的超类或实现的接口?- 如何获取类及接口的访问修饰符?- 获取类名的几种方法及区别。原创 2020-05-31 20:09:05 · 1445 阅读 · 0 评论 -
Java筑基——多线程(什么是死锁以及如何避免死锁)
目录1. 前言2. 正文2.1 死锁的小例子2.2 对死锁的描述3. 最后参考1. 前言本文会从一个小例子开始,介绍什么是死锁,再针对例子,说明如何避免死锁,最后会介绍一些死锁的理论化知识。2. 正文2.1 死锁的小例子class TaskA implements Runnable { @Override public void run() { while (true) { synchronized (DeadLockDemo.lock1)原创 2020-05-16 07:32:37 · 843 阅读 · 0 评论 -
Java多线程不可不会的面试题
虽然多线程相关的面试题比较基础,但是却是高频面点。这里写一篇文章总结一下,毕竟,“纸上得来终觉浅,绝知此事要躬行”。原创 2020-05-10 09:34:47 · 1244 阅读 · 0 评论 -
JVM内存结构详解
目录1. 运行时数据区域1. 运行时数据区域Java 虚拟机在执行 Java 程序中把它所管理的内存划分为若干个不同的区域,这些区域就称为运行时数据区域。运行时数据区域包括:程序计数器,虚拟机栈,本地方法栈,Java 堆,方法区。...原创 2020-03-29 22:28:28 · 691 阅读 · 0 评论 -
Java筑基——多线程(状态、安全以及通信)
目录1 基础概念2 定义线程的方式参考1 基础概念多核 CPU 和多 CPU多核 CPU 是在一枚处理器(CPU)中集成两个或多个完整的计算引擎(核心),不同的核通过L2 cache进行通信,存储和外设通过总线与CPU通信。多CPU 是多个物理 CPU,CPU通过总线进行通信,效率比较低。无论多个计算核是在多个 CPU 芯片上还是在单个 CPU 芯片上,我们称之为多核或多处理器系统。C...原创 2020-03-12 00:27:27 · 1903 阅读 · 0 评论 -
Java筑基——代理模式及实战
目录1. 引入2. 定义3. 分类3.1 静态代理3.1.1 代码演示3.1.2 不足之处3.2 动态代理4. 应用参考1. 引入我们以买房子来举例,小明和对象小花相处已经 3 年了,却仍然没有步入婚姻的殿堂。亲爱的小花说家里要求小明给她买套房子才肯结婚,因为觉得这样子小花以后的生活比较有保障,至少有个住的地方,同时也想考察一下小明的经济实力行不行。小明很无奈,但是必须得先买房。小明来到了省...原创 2020-02-29 00:19:00 · 3150 阅读 · 0 评论 -
Java筑基——反射(3):类内部信息获取
目录1. 获取类类型2. 获取类内部信息2.1 构造函数2.1.1 获取构造函数2.1.2 使用构造函数构造实例参考1. 获取类类型获取类类型的方法有四种:通过类对象获取:对象.getClass();通过类的 class 对象获取:类名.class;通过全类名获取:Class.forName(“全类名”)。当类不能定位到时,会抛出 ClassNotFoundException;通过 ...原创 2020-02-26 13:02:35 · 1330 阅读 · 0 评论 -
Java筑基——泛型的点点滴滴
目录1. 泛型的作用2. 泛型类3. 泛型接口4. 泛型方法5. 泛型擦除6. 边界1. 泛型的作用Java 中的泛型是在 Java 1.5以后引入的。它主要有两个作用:泛型通过使用参数化类型的概念,使代码可以应用于多种类型,可以理解“泛型”这个术语的意思是:“适用于许多许多的类型”,这其实就是提高了类的可重用性。下面通过代码说明一下:这是PointInt.java 类,它存放两个 ...原创 2020-02-22 17:03:38 · 1556 阅读 · 0 评论 -
代理模式总结
1,什么是代理模式?GoF对代理模式的描述:代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问[DP].理解一下这句话:包含了三个角色(其他对象,代理,这个对象),代理存在的意义是方便其他对象控制对这个对象的访问.代理是这个对象的代理,而不是其他对象的代理.现在,我们给这三个角色起个名字,联系一下生活中的场景,其他对象可以是买火车票的人,代理可以是火车票代售点,这个对...原创 2017-06-12 23:18:26 · 334 阅读 · 0 评论 -
Java筑基——类与类之间的 6 种关系
目录1. 前言2. 正文2.1 组合(composition)2.2 聚合(aggregation)2.3 继承(extends)1. 前言2016 年 8 月我去面试 Android 的时候,遇到一个 Java 大牛,问过我这个问题。我确实不知道类与类之间竟然会有 6 种关系。面试后,虽然查了一下,但是依然不理解:类与类之间这 6 种关系是怎么总结出来的。2. 正文2.1 组合(comp...原创 2019-05-26 11:37:59 · 360 阅读 · 0 评论 -
Thinking in Java(4th edition) 书上代码和练习题答案
书上代码https://github.com/BruceEckel/TIJ4-code练习题答案http://greggordon.org/java/tij4/solutions.htm原创 2019-02-01 10:15:47 · 1581 阅读 · 0 评论 -
java中的 transient 关键字的实际使用
在实际开发中,使用到 `transient` 关键字的时候不是很多。实际上,`transient` 这个关键字在实际开发中的用处还是挺多的。先回顾一下它的基本用法:> 一旦变量被 `transient` 修饰,变量将不再是持久化对象的一部分,该变量内容在序列化后无法获得访问;> `transient` 关键字只能修饰变量,不能修饰方法和类。注意,本地变量是不能被 transient 关键字修饰的;> 一个静态变量不管是否被 `transient` 关键字修饰,都不能被序列化。原创 2019-01-13 19:36:02 · 1183 阅读 · 0 评论 -
java.util.concurrent 包下的 CountdownLatch 和 Semaphore 的区别和联系
1 前言在开发中,使用到了 java.util.concurrent 包下的 CountdownLatch 和 Semaphore 类,但是还不清楚两者的区别。写下这篇文章把它弄清楚。2 互斥操作2.1 一个小例子假设公司里只有一台饮水机,早上刚上班的时候。大家都会去接上一杯水。针对这一场景,我们用程序演示出来:public class WaterMachine { ...原创 2018-09-09 15:28:31 · 1240 阅读 · 4 评论