- 博客(28)
- 收藏
- 关注
原创 杂物间
杂物间遗忘,远比想象要快的多这里记录一些零碎的,易错的知识点try_catch_returnpublic static void main(String[] args) { System.out.println(getNum(0)); //-1 System.out.println(getNum(1)); //2}执行结果:catchfinally1-1...
2019-02-21 09:29:06 320
原创 cap 理论
1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。Consistency Availability Partition tolerance它们的第一个字母分别是 C、A、P。Eric Brewer 说,这三个指标不可能同时做到。这个结论就叫做 CAP 定理。Consistency (一致性)同一时刻,所有分区的值是一致的。若想保证同一时刻,所有分区值是一致的,必须在修改某一分区时,锁定其他分区为不可用,故可用性不能满足。Availabi.
2021-01-05 17:23:43 595 1
原创 创建线程
/** 练习线程池的使用** 1. 共有 4 种线程池* 2. execute() 和 submit() 都是用来执行任务,区别在于 submit() 有返回值* 3. shutdown(), shutdownNow() 和 awaitTermination()* 4. Callable 执行任务有返回值* */public class ExecutorServiceTest { public static void main(String[] args) throws Exec.
2020-08-20 16:47:30 121
原创 Interrupt
public class InterruptTest { public static void main(String[] args) throws InterruptedException { Thread thread = new Thread() { @Override public void run() { while (true) { // 判断是否中断.
2020-08-19 17:50:56 121
原创 Long 在多线程
/*** 原子性** 在32位的虚拟机中,Long的赋值不是原子性的,可能会出现以下输出:*4294966852-4294967185429496685242949668524294966852** */public class MultiThreadLong { static long t = 0; public static class ChangeT implements Runnable{ long to; public.
2020-08-19 17:40:09 245
原创 wait
/* * 如果一个线程调用了object.wait()方法,它就会进入object的等待队列 * wait()方法不可以随便调用,它必须包含在对应的synchrozied语句中。 * object.notify(),从object等待队列中随机唤醒一个线程 * notifyAll() 唤醒所有线程 * */public class waitTest { static Object object = new Object(); public static class T1 e.
2020-08-19 17:30:31 109
原创 类初始化顺序
/*** 类初始化顺序** 1. 静态构造块最先执行,并只执行一次* 2. 成员变量执行,但静态成员变量早于静态块执行* 3. 构造块从上至下依次执行* 4. 构造方法执行** 父类早于子类** 父类静态构造块--》子类静态构造块--》父类成员变量--》父类构造块--》父类构造方法--》子类成员变量--》子类构造块--》子类构造方法** 静态成员变量先于静态块执行*** 首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,* 当子类的静.
2020-08-19 14:30:12 96
原创 模拟生产者消费者
public class ConsumerProducerTest { public static void main(String[] args) throws InterruptedException { BlockingQueue<PCData> queue = new LinkedBlockingDeque<PCData>(10); // 生产者 Producer producer1 = new Producer(.
2020-08-19 13:55:22 100
原创 排序算法
public class Sort { public static void main(String[] args) { int[] arr = {49, 38, 65, 97, 23, 22, 76, 1, 5, 8, 2, 0, -1, 22}; quickSort(arr, 0, arr.length - 1); bubbleSort(arr); System.out.println("排序后:"); fo.
2020-08-19 10:59:49 124
原创 迭代器
迭代器迭代器模式:提供一种方法对一个容器对象的各个元素进行访问,而又不暴露该容器的内部细节。java集合框架的集合类,我们有时候称之为容器。容器的种类有很多,如:ArrayList,LinkedList,HashSet...,每种容器都有自己的特点,ArrayList底层维护的是一个数组;LinkedList是链表结构;HashSet依赖的是哈希表,每种容器都有自己特有的数据结构。因为容器的内部结构不同,很多时候看能不知道该怎样去遍历一个容器中的元素,所以为了使对容器内元素的操...
2020-08-18 15:04:15 142
原创 使用栈,计算表达式
public class LinkedStack<T> { Node<T> head = new Node(null); public static void main(String[] args) { System.out.println("计算"); /* * 这个程序还存在问题 * 计算 2*3+5-5*2 正确,计算 1-2*1-2+5/2-5*2 错误 * */ .
2020-08-18 14:15:13 186
原创 关于 null 的所有
/** 1.null不属于任何类型,可以被转换成任何类型,但是用instanceof永远返回false.* 2.null永远不能和八大基本数据类型进行赋值运算等,否则不是编译出错,就是运行出错.* 3.null可以和字符串进行运算.* 4.同种类型的null,比较都返回true,null==null也返回true.* */public class MyNull { public static void main(String[] args) { System.ou.
2020-08-17 16:05:52 3149
原创 Comparable 和 Comparator
从字面来看,Comparable 可比较的,Comparator 比较器Comparable所有可以 “排序” 的类都实现 Comparable 接口,该接口中只有一个public int compareTo(Object obj) ;方法。该方法:返回 0 表示 this == obj返回正整数表示 this > obj返回负整数表示 this < obj3:实现了 Comparable 接口的类通过实现 comparaTo 方法从而确定该...
2020-08-17 15:47:41 100
原创 Array 和 Arrays
初始化动态初始化:int[] ints1 = new int[3];静态初始化:简化格式: int[] ints2 = {1, 2, 3};完整格式:int[] ints3 = new int[]{1, 2, 3};在开发之中,对于静态数组的初始化强烈建议使用完整语法模式,这样可以轻松地使用匿名数组这一概念。System.out.println(new int[]{1, 2, 3}.length);foreachint[] ints1 = n...
2020-08-17 11:29:26 203
原创 算法:查找和等于 n 的连续整数序列
public class Exercise { /* * 查找和等于 n 的连续整数序列 * * 以 1,2,3,4,5,6,7,8,9 为例 * 1. 初始 min,max 指向 1,此时 sum 未 1 * 2. 判断 sum 小于 n, max 向后移动: max ++, sum += max; * 3. 判断 sum 大于 n, min 向后移动: sum -= min, min ++; * 4. 若 sum 等于,输.
2020-08-14 17:00:09 194
原创 装饰者模式
定义: 在不改变原有对象的基础上,将功能附加到对象上。提供了更有弹性的替代方案。在学习装饰者模式时,经常使用的一个例子是卖煎饼果子,现在我们就化身小贩来卖煎饼果子。我们规定一个鸡蛋饼 5 元,一个肉饼 7 元,一个煎蛋 1 元,一个烤肠 2 元,一包辣条 1 元。若我们不使用设计模式编程,我们可能需要定义许多的类,比如:加一个煎蛋的鸡蛋饼,加一个烤肠的鸡蛋饼,加一个煎蛋的肉饼等等。现在我们可以用装饰者模式解决这个问题: 1. 定义抽象的饼 abstract class Pie{...
2020-08-13 15:28:34 100
原创 树
树的遍历先序:根,左,右中序:左,根,右后序:左,右,根先序,中序,后序是指根的位置,左和右的位置是固定的。完美二叉树(满二叉树):除了叶子结点之外的每一个节点都有两个孩子,每一层(当然包含最后一层)都被完全填充。完全二叉树:除了最后一层之外的其他每一层都被完全填充,并且所有节点都保持向左对齐。完满二叉树:除了叶子结点之外的每一个结点都有两个孩子结点。二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是指一棵空树具有如下性质:任意节点左子树...
2020-08-12 10:27:43 112
原创 重入锁
在 JDK 5.0 的早期版本中,重入锁的性能远远好于 synchronized,但从 JDK 6.0 开始,JDK 在 synchronized 上做了大量的优化,使得两者的性能差距不大。例子:package lock;import java.util.concurrent.locks.ReentrantLock;public class ReenterLock implements Runnable { public static ReentrantLock lock = new
2020-08-11 22:13:38 75
原创 从 Integer 谈包装类和拆装箱
Integer是int的包装类在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行:Integer i = new Integer(10);而在从Java SE5开始就提供了自动装箱的特性,如果要生成一个数值为10的Integer对象,只需要这样就可以了:Integer i = 10;在装箱的时候自动调用的是Integer的valueOf(int)方法。而在拆箱的时候自动调用的是Integer的intValue方法。包装类的实例可以与数值类型的值
2020-07-31 16:54:12 168
原创 编码格式大集合
理解编码集计算机内部,所有信息最终都是一个二进制。每个二进制位(Bit)有 0 和 1 两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每个状态对应一个符号,就是256个符号,从00000000到11111111。ASCII上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系做了...
2020-04-26 17:48:07 297
原创 Java IO 体系
在 Java 中,当我们要想从文件中读取数据或着写入数据到文件时,我们就需要用到 IO。有时我们读取或写入二进制数据,如图片,音频等,又有时我们仅仅读取某个文本文件中的一些字符,这是我们应该如何呢?你肯定也在读取或写入的过程中遇到过莫名奇妙的乱码。如果你有以上困惑,说明你需要这篇文章。IO 体系的两种分类以内存为基准,根据数据的走向,可以分为输入流和输出流根据处理的数据类型可以分为...
2020-04-26 17:34:11 124
原创 加油吧,少年
农历 2019 年马上就过完了,明天我也就出发准备回家。时光荏苒,我工作也两年了。总结:翻看了一下去年的总结,今年懒散了许多,无论工作生活都缺乏规划,所以收获也微乎其微。工作两年来,技术方面有不少的提高,但离优秀还相差甚远,明年要有规划的看书,来提高自己的技术水平。生活方面,这一年谈了恋爱,体会到了有人挂念和挂念别人的滋味。去了呼和浩特,秦皇岛,唐山旅游。买了昂贵的健身私教,但是感...
2020-01-22 17:47:57 230
原创 JSON
JSON这篇文章源于我工作时的一个错误,之前虽然了解过 JSON,但是却不熟悉。什么是 JSON 格式JSON 格式(JavaScript Object Notation 的缩写) 是一种用于数据交换的文本格式, 2001 年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。JSON 的类型和格式复合类型的值只能是数组或对象,不能是函数、正则表达式对象、...
2019-12-27 23:48:40 85
原创 理解 Servlet
理解 Servlet这是一个简单的 Servlet 例子,实现了登录,退出,登录用户可以进行 Hello World 服务和 Echo 服务。web.xml首先 web.xml 是 Java Web 项目的一个重要的配置文件,但是 web.xml 文件并不是 Java Web 工程必须的。web.xml 文件是用来配置:欢迎页、servlet、filter 等。当你的web工程没用到这些时...
2019-12-15 21:50:41 89
原创 学习 List
学习 ListList 是开发中最常用的类,了解 List 可以提高我们编程效率,今天就来了解一下 List 的常用 API 以及 ArrayList 是如何实现的。迭代器学习 List 之前,我们有必要先了解一下 Iterable, Iterator 和 ListIterator 这三个接口, 它们与 List 的迭代息息相关。IterableIterable 源码:public ...
2019-12-08 01:05:25 135
原创 Java8 interface 笔记
Java8 的 interface1. 可以定义 static,default 方法2. 子类不可以继承 static 方法3. 实现多个接口时,若父类定义了相同的 default 方法,子类必须重写
2019-12-03 14:07:30 412
原创 随机数
将目标明确化,细节化昨天和室友聊天,起去年有什么收获呀?我们俩四目相对,哈哈一笑,异口同声说到:没有。随后我室友说到,我去年没有收获是因为没有明确的目标,我才意识到我从来没有过明确的目标呀。在过去,在去年,我有过许多宽泛的目标,比如:读一些书,做一些运动。今天开心,拿起书读了两页,今天天气好,去跑了会步,看起来确实读书和运动了,但仔细回想起来,并没有太大的收获,还容易给自己一种特充实的...
2019-02-17 18:40:11 318
原创 追逐更好的生活
天分,科学的训练,自律。不管你做什么,这三样里面至少有两样,你才能比大多数人都强。2018.02.21,离开家,前往太原完成最后的编程培训。 2018.03.05,踏上了去北京的火车,开始了找工作之旅。 2018.03.25,找到了工作,开始实习。 2018.06.15,返校参加毕业典礼,我毕业了。 2018.07.10,我报了专升本培训。 2018.07.25,我转正了,开始了...
2019-02-02 15:29:04 119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人