Java学习
TUTsmile
2020届毕业生,博客作为个人的学习笔记,希望能够给各位提供参考价值,若不明白可以评论或私信,第一时间回复、修改博客
展开
-
Java进阶学习笔记(十二)Java8重要特性stream详解
https://www.cnblogs.com/wuhenzhidu/p/10740091.html原创 2020-08-18 10:53:15 · 285 阅读 · 0 评论 -
Java进阶学习笔记(十一)胎教级别的依赖注入(DI)和控制反转(IOC)思想讲解
参考轻松理解 Java开发中的依赖注入(DI)和控制反转(IOC)、Java:控制反转(IoC)与依赖注入(DI)、依赖注入Dependency Injection-依赖注入详解一、依赖注入依赖注入是一个常见的专业名词,但是较难理解。我觉得这个是因为依赖注入这个思想,其实就藏在面对对象的编程中。就好像每个人都会吃饭,但有一天突然要你科学解释,什么叫做咀嚼,你肯定也会不知所措。所以个人感觉可以解释为:注入依赖对象。1、什么叫注入有些人对于注入不太理解。用一个简单的例子来解释一下我们有个Task类原创 2020-07-24 19:40:52 · 188 阅读 · 0 评论 -
Java进阶学习笔记(十)Serializable 序列化和反序列化,serialVersionUID的意义
基本抄 Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用。为啥要实现这个 Serializable 接口,也就是为啥要序列化c,serialVersionUID 这个的值到底是在怎么设置的,有什么用。有的是1L,有的是一长串数字,迷惑ing。我刚刚见到这个关键字 Serializable 的时候,就有如上的这么些问题。在处理这个问题之前,你要转载 2020-07-23 20:50:23 · 551 阅读 · 0 评论 -
Java进阶学习笔记(九) 多线程编程(六)原子访问、AtomicInteger
一、原子操作的概念原子操作就是最小的,不可再次拆分的操作,也就是即不可中断的操作,比如赋值操作int i = 5;比如 i++ 这个行为,事实上是有3个原子性操作组成的。步骤 1. 取 i 的值步骤 2. i + 1步骤 3. 把新的值赋予i这三个步骤,每一步都是一个原子操作,但是合在一起,就不是原子操作。就不是线程安全的。换句话说,一个线程在步骤1 取i 的值结束后,还没有来得及进行步骤2,另一个线程也可以取 i的值了。这也是分析同步问题产生的原因 中的原理。i++ ,i–, i = i原创 2020-07-23 20:06:40 · 164 阅读 · 0 评论 -
Java进阶学习笔记(八) 多线程编程(五)LOCK对象
文章目录LOCK对象1、 使用Lock实现同步效果2、tryLock3、线程交互4、总结Lock和synchronized的区别LOCK对象1、 使用Lock实现同步效果示例Lock是一个接口,为了使用一个Lock对象,需要用到newLock lock = new ReentrantLock();与 synchronized (someObject) 类似的,lock()方法,表示当前线程占用lock对象,一旦占用,其他线程就不能占用了。与 synchronized 不同的是,一旦synch转载 2020-07-23 19:32:35 · 138 阅读 · 0 评论 -
Java进阶学习笔记(七) 多线程编程(四)线程池详解
参考Howj、易百教程、Java线程池全面解析、Java线程池使用详解、Java线程池详解不明白欢迎评论区留言讨论,共同学习。文章目录一、何为线程池二、使用基本线程池1、线程池类ThreadPoolExecutor简要讲解2、workQueue工作队列类型参数详解2.1 例子一:使用直接提交策略,也即SynchronousQueue。2.2 例子二:使用无界队列策略,即LinkedBlockingQueue2.3 例子三:有界队列,使用ArrayBlockingQueue。3、handler 拒绝策略详原创 2020-07-23 15:54:16 · 239 阅读 · 0 评论 -
Java进阶学习笔记(六) 多线程编程(三)死锁、线程间的交互(wait、notify和notifyAll)
将会学习、讨论https://how2j.cn/k/thread/thread-deadlock/356.htmlhttps://how2j.cn/k/thread/thread-wait-notify/358.html原创 2020-07-22 23:33:29 · 344 阅读 · 0 评论 -
Java进阶学习笔记(五) 多线程编程(二)线程同步安全问题:synchronized的作用与应用、线程安全的类
1. synchronizedsynchronized用于并发编程中,可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块2. 锁方法先通过runnable实现一个简单的多线程,用synchronized修饰increase我们的目标是通过两个线程,使用 i++,让 i 增长至20000public class SynchronizedTest implements Runnable { static int i = 0; public synchronized voi原创 2020-07-20 16:45:53 · 181 阅读 · 0 评论 -
Java进阶学习笔记(四) 多线程编程(一)线程状态简介、启动线程、线程方法
本文参考HOW2J教程、菜鸟教程添加链接描述文章目录一、线程状态简介二、启动线程1、继承线程类2、实现Runnable接口3、匿名类三、线程方法1、sleep2、join3、线程优先级4、暂停5、守护进程一、线程状态简介新建状态:使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序 start() 这个线程。就绪状态:当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中,要等待JVM里线原创 2020-07-22 15:06:53 · 172 阅读 · 0 评论 -
Java进阶学习笔记(三) 反射教程详细笔记
主要参考HOW2J发射机制系列教程、Java 反射 -超详细讲解(附源码)一、反射JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。或许有人奇怪,我在编写代码时,也能够获取这个类的所有属性和方法,为何需要反射呢?我们在编写代码的时候,是在编译前获取对象,而反射是在程序运行时获取对象。结论: 运行时获取对象用的应用场景: 之后学习切面的时候,原创 2020-07-22 09:34:01 · 242 阅读 · 0 评论 -
Java进阶学习笔记(二)泛型方法<T>T 与 T不同点
结论<T> T 方法可以接受任意类型参数,T 在初始化(new)的时候已经限定了T的类型,只能接受对应类型的参数说明定义的泛型如下所示public class GenericsHolder<T> { private T data; /** * 这个<T> T 可以传入任何类型 * 参数T * 第一个 表示是泛型 * 第二个 表示返回的是T类型的数据 * 第三个 限制参数原创 2020-07-21 16:02:08 · 319 阅读 · 0 评论 -
Java进阶学习笔记(一)全网最详细的 forEach、Lambda表达式、双冒号操作符(方法引用)、函数式接口笔记,大量实例
先直接贴上使用方法以下三种代码执行效果相同for (Object n : list) { System.out.println(n); }list.forEach(n -> System.out.println(n));list.forEach(System.out::println);一、Lambda表达式例子// 1. 不需要参数,返回值为 5 () -> 5 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3原创 2020-07-22 14:32:42 · 774 阅读 · 0 评论 -
SLF4J快速上手、isDebugEnabled有何作用
学习 官方文档 的过程中开始一、项目起步 HelloWorld public static void main(String[] args) { //输入类名 Logger logOne = LoggerFactory.getLogger(LearnApplication.class); logOne.info("helo world"); //输入String Logger logTwo = LoggerFactory.getLogger原创 2020-07-20 11:14:40 · 2675 阅读 · 1 评论 -
编程工具使用技巧(一):IDEA 如何使用TAB跳出括号,常用快捷键,推荐插件
如何使用TAB跳出括号在2018.2 的版本中,官方加入了TAB跳出括号快捷键,需要自行开启,此方法通用于所有的jetbrains的产品,此处以IDEA举例:在 Settings->Editor->General->Smart Keys 中就能找到 Jump outside closing bracket/quote with Tab 点击即可。IDEA常用快捷键1.代...原创 2019-04-07 20:55:44 · 8793 阅读 · 3 评论 -
Java实习面试重点基础知识
今天第一次参加面试,十分紧张,加上本身我就学艺不精,没系统学过Java去面Java实习,问出的许多问题我都没有回答出来,估计我的第一次实习生面试凉了。不过总不能沉溺于过去,总结一下今天面试中我遇到的问题,并且会上一些自己查找到的答案。后续关于Java开发相关岗位的实习生面试问题我也会在此处更新。1.自我介绍如实介绍吧,没有就没有,不会就不会,强调了自学Java,Html,JavaSc...原创 2019-04-19 23:03:26 · 2928 阅读 · 10 评论