Java核心知识
Java核心知识整理笔记
CoderRuL
全菜工程师
展开
-
Java中线程安全的容器
1、Collections包装的同步容器在Collections类中,通过以下方法可以将一个非线程安全的容器包装为一个线程安全的容器://线程安全的List,其类型为SynchronizedList或SynchronizedRandomAccessListList<Object> list = Collections.synchronizedList(new ArrayList<>());//线程安全的Set,其类型为SynchronizedSetSet<Objec原创 2020-12-08 21:14:01 · 571 阅读 · 0 评论 -
Java Object Layout
Java Object Layout – Java对象的内存布局在 Java 程序中,我们拥有多种新建对象的方式。除了最为常见的 new 语句之外,我们还可以通过反射机制、Object.clone 方法、反序列化以及 Unsafe.allocateInstance 方法来新建对象。其中,Object.clone 方法和反序列化通过直接复制已有的数据,来初始化新建对象的实例字段。Unsafe.allocateInstance 方法则没有初始化实例字段,而 new 语句和反射机制,则是通过调用构造器来初始化原创 2020-06-08 18:04:02 · 1536 阅读 · 0 评论 -
HashMap源码详细注释
HashMap核心源码解读本文为CoderRuL原创,如需转载请附上本文链接!博主主页:https://blog.csdn.net/qq_43472474属性public class HashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>, Cloneable, Serializabl...原创 2020-04-17 23:13:09 · 454 阅读 · 0 评论 -
数据库系统原理选择题
数据库系统原理选择题1、要保证数据库的逻辑数据独立性,需要修改的是||A||。A: 模式与外模式之间的映射B: 模式与内模式之间的映射C: 模式D: 三级模式2、数据库系统的数据独立性体现在||B||。A: 不会因为数据的变化而影响到应用程序B: 不会因为数据存储结构与数据逻辑结构的变化而影响应用程序C: 不会因为存储策略的变化而影响存储结构D: 不会因为某些存储结构的变化而影...原创 2020-04-11 22:00:40 · 6909 阅读 · 6 评论 -
Java多线程知识点
Java多线程知识点1.多线程基础什么是线程和进程? 线程与进程的关系,区别及优缺点?说说并发与并行的区别?为什么要使用多线程呢?使用多线程可能带来什么问题?(内存泄漏、死锁、线程不安全等等)创建线程有哪几种方式?(a.继承 Thread 类;b.实现 Runnable 接口;c. 使用 Executor 框架;d.使用 FutureTask)说说线程的生命周期和状态?什么是上下...原创 2020-04-08 16:00:47 · 210 阅读 · 0 评论 -
一千行MySQL
一千行MySQL基本操作数据库操作表的操作数据操作字符集编码数据类型(列类型)列属性(列约束)建表规范SELECTUNION子查询连接查询(join)TRUNCATE备份与还原视图事务(transaction)锁表触发器SQL编程存储过程用户和权限管理表维护杂项基本操作/* Windows服务 */-- 启动MySQL net s...原创 2020-04-02 21:53:50 · 686 阅读 · 0 评论 -
Spring JDBC 框架
Spring JDBC 框架文章目录Spring JDBC 框架JDBC 框架概述JdbcTemplate 类配置数据源数据访问对象(DAO)执行 SQL 语句执行 DDL 语句Spring JDBC 框架例子Spring JDBC 示例Spring 中 SQL 的存储过程JDBC 框架概述在使用普通的 JDBC 数据库时,就会很麻烦的写不必要的代码来处理异常,打开和关闭数据库连接等。但 ...原创 2020-03-29 20:36:21 · 292 阅读 · 0 评论 -
Java源码解析之LinkedHashMap
Java源码解读之LinkedHashMapHashMap 是用于映射(键值对)处理的数据类型,不保证元素的顺序按照插入顺序来排列,为了解决这一问题,Java 在 JDK1.4 以后提供了 LinkedHashMap 来实现有序的 HashMapLinkedHashMap 是 HashMap 的子类,它保留了元素的插入顺序,在内部维护着一个按照元素插入顺序或者元素访问顺序来排列的链表,默认是按...原创 2020-03-27 21:38:02 · 210 阅读 · 0 评论 -
Spring 框架的 AOP
Spring 框架的 AOP文章目录Spring 框架的 AOPSpring 框架的 AOPAOP 术语通知的类型实现自定义方面Spring 中基于 AOP 的 XML架构声明一个 aspect声明一个切入点声明建议基于 AOP 的 XML 架构的示例Spring 中基于 AOP 的 @AspectJ声明一个 aspect声明一个切入点声明建议基于 AOP 的 @AspectJ 示例Spri...原创 2020-03-23 21:12:38 · 385 阅读 · 0 评论 -
Spring Beans 自动装配
Spring Beans 自动装配文章目录Spring Beans 自动装配Beans 自动装配自动装配模式自动装配的局限性Spring 自动装配 ‘byName’Spring 自动装配 ‘byType’Spring 由构造函数自动装配Beans 自动装配你已经学会如何使用<bean>元素来声明 bean 和通过使用 XML 配置文件中的<constructor-arg&...原创 2020-03-22 20:03:42 · 111 阅读 · 0 评论 -
初识计算机网络||物理层
计算机网络学习笔记 | 物理层1、物理层的基本概念物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。现有的计算机网络中的硬件设备和传输媒体的种类非常繁多,而通信手段也有许多不同方式。物理层的作用正是要尽可能地屏蔽掉这些传输媒体和通信手段的差异,使物理层上面的数据链路层感觉不到这些差异,这样就可使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络...原创 2020-03-19 12:43:02 · 1566 阅读 · 0 评论 -
Java集合源码解析之LinkedList
Java集合源码解析之LinkedListLinkedList 同时实现了 List 接口和 Deque 接口,所以既可以将 LinkedList 当做一个有序容器,也可以将之看作一个队列(Queue),同时又可以看作一个栈(Stack)。虽然 LinkedList 和 ArrayList 一样都实现了 List 接口,但其底层是通过双向链表来实现的,所以插入和删除元素的效率都要比 ArrayL...原创 2020-03-17 11:12:40 · 130 阅读 · 0 评论 -
Lambda表达式
一、简介Lambda表达式(也称为闭包)是JDK8新增的功能,底层通过 invokedynamic 指令来生成匿名类来实现。Lambda表达式本质上是一个匿名方法,但这个方法不是独立执行的,而是用于实现由函数式接口定义的另一个方法。因此,Lambda表达式会导致生成一个匿名类函数式接口是仅包含一个抽象方法的接口。一般来说,这个方法指明了接口的目标用途。因此,函数式接口通常表示单个动作。例如,标...原创 2020-03-16 19:27:57 · 171 阅读 · 0 评论 -
Java异常处理
Java异常处理异常是运行时在代码序列中引起的非正常状态。在不支持异常处理的计算机语言中,必须手动检查和处理错误,Java语言则采用面向对象的方式管理运行时错误一、概念Java异常是用来描述在一段代码中发生的异常情况的对象。当出现引起异常的情况时,就会创建用来表示异常的对象,并在引起异常的方法中抛出异常对象。方法可以选择自己处理异常或者传递异常交由其他方法来处理Java异常处理通过五个关键...原创 2020-03-06 13:46:58 · 259 阅读 · 0 评论 -
Java锁的分类
Java锁的分类本文参考Java1234《Java核心知识点整理》乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新),如果失败则要重复读-比较-写的操作。 java中的乐观锁基本都是...原创 2020-03-03 14:33:31 · 154 阅读 · 0 评论 -
Java核心技术36讲阅读笔记(1)
Java核心技术36讲阅读笔记(1)本文参考极客时间杨晓峰-Java核心技术36讲本文为博主阅读《Java核心技术36讲》整理的笔记,如需转载,请附上本文链接1.对“Write once,run anywhere!"的理解“一次编写,到处运行”说的是Java语言跨平台的特性,Java的跨平台特性与Java虚拟机的存在密不可分,可在不同的环境中运行。比如说Windows平台和Linux平...原创 2020-02-24 21:07:11 · 603 阅读 · 0 评论 -
Java核心技术36讲阅读笔记(2)
Java核心技术36讲阅读笔记(2)本文参考极客时间杨晓峰-Java核心技术36讲本文为博主阅读《Java核心技术36讲》整理的笔记,如需转载,请附上本文链接1、Java提供了哪些IO方式,NIO如何实现多路复用?Java IO方式有很多种,基于不同的IO抽象模型和交互方式,可以进行简单区分。首先,传统的java.io包,它基于流模型实现,提供了我们最熟知的一些IO功能,比如Fil...原创 2020-02-27 20:33:08 · 331 阅读 · 0 评论 -
Java泛型知识点整理
Java泛型知识点整理Java泛型泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。比如我们要写一个排序方法,能够对整型数组、字符串数组甚至其他任何类型的数组进行排序,我们就可以使用Java 泛型。泛型方法<E>泛型方法在调用时可以接收不同类型的参数。根据传递给泛型方法的参数类型,编译器...原创 2020-02-21 16:55:18 · 257 阅读 · 0 评论 -
Java 内存区域详解
Java 内存区域详解主要针对 HotSpot 虚拟机。常见面试题基本问题介绍下 Java 内存区域(运行时数据区)Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么)对象的访问定位的两种方式(句柄和直接指针两种方式)拓展问题String 类和常量池8 种基本类型的包装类和常量池一 概述对于 Java 程序员来说,在虚拟机自动内存管理机制下,...原创 2020-02-17 21:57:15 · 223 阅读 · 0 评论 -
Java多线程基础
Java多线程基础1、Java线程实现/创建方式1.1 继承Thread类Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。class MyThread extends Thread { public ...原创 2020-02-05 14:46:40 · 154 阅读 · 0 评论 -
JAVA异常分类及处理
JAVA异常分类及处理概念如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KuyRC6YR-1579768931465)(C...原创 2020-01-23 16:43:37 · 158 阅读 · 0 评论 -
HashMap
HashMap 简介HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)时,将链表转化为红黑树,以减少搜索时间。底层数据...原创 2020-01-23 16:24:07 · 289 阅读 · 0 评论 -
ArrayList
ArrayList简介ArrayList核心源码ArrayList源码分析System.arraycopy()和Arrays.copyOf()方法两者联系与区别ArrayList核心扩容技术内部类ArrayList经典DemoArrayList简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元...转载 2019-10-19 05:33:19 · 244 阅读 · 0 评论