自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

转载 java 基础面试

JDK和JRE JRE:java运行时环境,包含了java虚拟机,java基础类库 JDK:java开发工具包,包括JRE JVM作用 解释运行字节码程序,消除平台差异性 8种基本数据类型 byte 1B short 2B char 2B int 4B long 8B float 4B double 8B boolean 1B 装箱和拆箱 自动类型转换 转换原则:从低精度向高精度转换...

2019-09-09 16:42:00 134

转载 java String StringBuilder StringBuffer

String final类,不能被继承。 public final class String 不可变,一旦修改了String对象的值,等于隐性重新创建了一个新的对象,释放原对象。 private final char value[]; StringBuilder 可修改对象,通过append()方法来修改。 @Override public StringBuilder ...

2019-09-08 22:25:00 125

转载 java 反射

通过反射,我们可以在运行时获得程序或程序集中每一个类型的成员和成员的信息。一般程序中对象的类型都是在编译期就确定下来的,而 Java 反射机制可以动态地创建对象并调用其属性,这样的对象的类型是编译期未知的。 作用 创建一个类的对象 判断一个对象所属的类 判断一个类所具有的成员变量和方法 调用一个对象的任意方法 反射最重要的用途就是开发各种通用框架。很多框架(比如 Spring)都是配...

2019-09-07 22:10:00 116

转载 AQS

java.util.concurrent.locks.AbstractQueuedSynchronizer ReentrantLock、Semaphore、CountDownLatch都有一个内部类Sync,而所有的Sync都是继承自AbstractQueuedSynchronizer。 AQS核心是通过一个共享变量来同步状态,变量的状态由子类去维护,而AQS框架做的是: 线程阻塞队列...

2019-09-06 22:06:00 157

转载 java 容器

概述 List接口、Queue接口、Set接口均继承了Collection接口,而Collection接口又继承了Iterable接口。 public interface Iterable<T> { @NotNull Iterator<T> iterator(); // 在子类中以内部类的方式实现 } pu...

2019-09-02 22:02:00 84

转载 java io

设计模式 装饰者模式、适配器模式 类别 同步阻塞IO(BIO) BIO是一个连接一个线程。 传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口;Socket负责发起连接操作。连接成功后,双方通过输入和输出流进行同步阻塞式通信。 该模型最大的问题就是缺乏弹性伸缩能力,当客户端并发访问量增加后,服务端的线程个数和客户端并发访问数呈1:1的正比关系,Java中的线...

2019-08-30 15:07:00 102

转载 java 线程

实现方式 Thread 继承Thread类,重写run方法 创建子类实例,即创建了线程对象 调用实例的start方法来启动线程 public class MyThread extends Thread { // 多个线程无法共享线程类的实例变量 private int i; @override public void run() { ...

2019-08-29 14:26:00 57

转载 java 引用

强引用Strong Reference Object obj = new Object() 只要强引用存在,垃圾收集器永远不会回收被引用的对象。 软引用Soft Reference SoftReference类,还有用但并非必需的对象。 对于软引用关联的对象,在将要发生内存溢出异常之前,将会把这些对象列进回收范围之中进行第二次回收。 弱引用Weak Reference WeakRefer...

2019-08-27 15:52:00 51

转载 spring面试合集

Spring是一个开源的轻量级Java SE / Java EE开发应用框架。在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚 Spring框架可以帮我们管理对象及其依赖关系,另外还提供像通用日志记录、性能统计、安全控制、异常处理等面向切面的能力,以及管理数据库事务,...

2019-08-27 15:38:00 83

转载 jvm(6):JMM

typora-root-url: ./ CPU多核并发缓存架构 JMM(Java线程内存模型)底层实现原理 基于CPU缓存模型建立的,屏蔽掉了底层不同计算机的区别。 所有的共享变量都存储在主内存。每条线程还有自己的工作内存。线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。 JMM数据原子操作 read(读取):从主内存读取数据到工作内存中,以便load ...

2019-08-22 23:24:00 108

转载 jvm(n):JVM面试

Jvm内存结构,一般是面试官对Java虚拟机这块考察的第一问。 Java虚拟机的内存结构一般可以从线程共有和线程私有两部分起头作答,然后再详细说明各自的部分,类似树状结构的作答,好处就是思路清晰,面试官听着也舒服。 线程共有的包括Java堆和方法区,线程私有的包括虚拟机栈、本地方法栈和程序计数器。 Java堆是用于存放Java程序运行时所需的对象等数据,Java堆又分为新生代和老年代。我...

2019-08-20 00:09:00 173

转载 jvm(5):类加载机制

类加载时机 Java虚拟机规范并没有强制约束类加载过程的第一个阶段时机,但对初始化阶段由严格规定5中必须立即对类进行初始化的情况: 遇到new、getstatic、putstatic或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。 使用new关键字实例化对象 读取或设置一个类的静态字段(被final修饰、已在编译期把结果放入常量池的静态字段...

2019-08-16 12:49:00 50

转载 jvm(4):类文件结构

typora-root-url: ./ 类文件结构 魔数Magic Number 每个Class文件的头4个字节是魔数。值为0xCAFEBABE 唯一作用:确定这个文件是一个能被虚拟机接受的Class文件 Class文件的版本 紧挨着魔数的4个字节是Class文件的版本号:第5、6个字节是次版本号,第7、8个字节是主版本号。 高版本的JDK能向下兼容以前版本的Class文件,但不能运...

2019-08-14 19:04:00 67

转载 jvm指令手册

加载和存储指令 将常量压入栈的指令 aconst_null 将null对象引用压入栈 iconst_m1 将int类型常量-1压入操作数栈 iconst_0 将int类型常量0压入操作数栈 iconst_1 将int类型常量1压入操作数栈 lconst_0 将long类型常量0压入栈 bipush 将一个8位带符号整数压入栈 sipush 将16位带符号整数压入栈 ldc 把常量池中的项...

2019-08-14 19:04:00 72

转载 jvm(3):JVM调优

typora-root-url: ./ JVM调优思路 目的:减少full GC次数、减少STW时间(一次GC的时间) 手段: 打印GC日志-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:./gc.log 分析日志得到关键性指标 分析GC原因,调优JVM参数 案例 高性能硬件上的程序...

2019-08-13 22:16:00 157

转载 jvm(2):垃圾收集和内存分配

typora-root-url: ./ 垃圾收集 垃圾收集器关注的是线程共享的这部分内存。 jvisualvm用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。 回收方法区 永久代的垃圾收集主要回收两部分内存:废弃常量和无用的类 废弃常量:没有任何对象引用该常量。 无用的类:同时满足 ...

2019-08-13 16:17:00 87

转载 jvm(1):内存结构

JVM内存结构 JVM内存的运行时数据区: 线程私有(在线程启动时创建) 程序计数器Program Counter Register 一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。 虚拟机栈VM Stack 描述的是Java方法执行的内存模型:每个方法在执行的同时会创建一个栈帧[Stack...

2019-08-13 16:16:00 92

转载 mysql(5):主从复制和分库分表

主从复制集群 概念:主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。 使用场景: 读写分离:使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。 数据实时备份:当系统中某个节点发生故障时,可以方便的故障切换。 高可用High Availability 架构扩展:增加多个数据存储节点,将负载分布在多个从...

2019-08-05 19:07:00 148

转载 mysql(3):锁和事务

MySQL锁的介绍 锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对共享资源的并发访问。 表级锁 例如MyISAM引擎,其锁是表锁设计。并发情况下的读没有问题,但是并发插入时的性能要差一些。 直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程读也不允许。 两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Writ...

2019-08-05 15:30:00 115

转载 mysql(4):性能分析和性能优化

性能分析 慢查询日志分析 ①查询慢查询日志的状态 show global variables like '%slow_query_log%'; ②开启慢查询日志(当mysql重启时会重置) set global slow_query_log; ③查询mysql默认限制慢sql语句的上限时间值 show variables like '%long_query_time%'; # 默认...

2019-08-05 15:30:00 117

转载 mysql(2):索引

索引基础 索引介绍 定义 索引是满足某种特定查找算法的数据结构。这些数据结构会以某种方式指向数据,从而实现高效查找。 优势 提高了查询速度 劣势 降低更新表的速度,因为更新表时,MySQL不仅要保存数据,还要保存索引文件。 建立索引会占用磁盘空间的索引文件。 索引分类 主键索引 根据主键pk_column(length)建立索引,不允许重复,不允许空值。 ALTER TABLE 'tab...

2019-08-05 15:29:00 72

转载 mysql(1):简介

typora-root-url: ./ SQL语法顺序和执行顺序 SQL语法顺序 SELECT [DISTINCT] <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condit...

2019-08-05 15:28:00 93

转载 spring mvc

MVC Model(模型):数据模型,包含数据和行为:Value Object(数据) 和 服务层(行为)。 View(视图):负责进行模型的展示。 Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。 也就是说控制器做了个调度员的工作。 模型无法主动推数据给视图,如果用户想要视图更新,需要发送一次请求(即请...

2019-07-26 10:13:00 93

转载 spring(六):事务

事务特性ACID 原子性(Atomicity):即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做; 一致性(Consistency):在事务执行前数据库的数据处于正确的状态,而事务执行完成后数据库的数据还是处于正确的状态,即数据完整性约束没有被破坏。 隔离性(Isolation):并发事务执行之间无影响,在一个事务内部的操作对其他事务是不产生影响,这需要事务隔离级别来指...

2019-07-16 15:21:00 124

转载 spring(五):AOP

AOP(Aspect Oriented Programming) 面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP)。 在进行OOP开发时,都是基于对组件(比如类)进行开发,然后对组件进行组合,OOP最大问题就是无法解耦组件进行开发。 AOP为开发者提供一种进行横切关注点(比如日志关注点横切了支付关注点)分离并织入的机制,把横切关注点分离,然后通过...

2019-07-16 13:30:00 88

转载 spring(四):DI流程

在IoC容器初始化过程中,一般不包含Bean依赖注入的实现。 依赖注入一般发生在应用第一次向容器获取Bean时(getBean),但是有一个例外。 在使用IoC容器时有一个预实例化的配置,即通过lazy-init属性控制Bean的实例化(依赖注入)时机。 一般情况 // <<AbstractBeanFactory>> public Object g...

2019-07-14 23:20:00 151

转载 spring(四):Resource

Resource Spring的Resource接口代表底层外部资源,提供了对底层外部资源的一致性访问接口。 public interface Resource extends InputStreamSource { boolean exists(); default boolean isReadable() { return this.exists(); } d...

2019-07-14 22:10:00 164

转载 spring(四):IoC初始化流程&BeanDefinition加载注册

ApplicationContext context = new ClassPathXmlApplicationContext("hello.xml"); /** * * @param configLocations Spring的xml配置文件 * @param refresh 是否需要刷新,决定了是否进行bean解析、注册及实例化 *...

2019-07-14 21:52:00 156

转载 spring(四):IoC

IoC—Inversion of Control,即控制反转 IoC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。 理解IoC的关键:“谁控制谁,控制什么,为何是反转,哪些方面反转了”: ●谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由IoC容器来控...

2019-07-14 21:52:00 64

转载 spring(三):DefaultListableBeanFactory

转载于:https://www.cnblogs.com/angelica-duhurica/p/11185992.html

2019-07-14 21:51:00 44

转载 spring(三):BeanDefiniton

转载于:https://www.cnblogs.com/angelica-duhurica/p/11185988.html

2019-07-14 21:51:00 66

转载 spring(三):BeanFactory

转载于:https://www.cnblogs.com/angelica-duhurica/p/11185973.html

2019-07-14 21:48:00 65

转载 spring(三):ApplicationContext

转载于:https://www.cnblogs.com/angelica-duhurica/p/11185978.html

2019-07-14 21:48:00 46

转载 spring(二):体系结构&核心模块

Spring框架 帮助管理对象及其依赖关系 提供如通用日志记录、性能统计、安全控制、异常处理等面向切面的能力 帮助管理数据库事务,提供了一套简单的JDBC访问实现,提供与第三方数据访问框架集成(如Hibernate、JPA) 提供与各种Java EE技术整合(如Java Mail、任务调度等) 提供一套自己的web层框架Spring MVC、而且还能非常简单的与第三方web框架集成 ...

2019-07-14 21:47:00 103

转载 spring(一):思维导图

转载于:https://www.cnblogs.com/angelica-duhurica/p/11185961.html

2019-07-14 21:46:00 107

转载 mybatis(六):设计模式 - 组合模式

转载于:https://www.cnblogs.com/angelica-duhurica/p/11144318.html

2019-07-06 21:52:00 260

转载 mybatis(六):设计模式 - 装饰器模式

转载于:https://www.cnblogs.com/angelica-duhurica/p/11144314.html

2019-07-06 21:52:00 254

转载 mybatis(六):设计模式 - 责任链模式

转载于:https://www.cnblogs.com/angelica-duhurica/p/11144311.html

2019-07-06 21:51:00 513

转载 mybatis(六):设计模式 - 适配器模式

转载于:https://www.cnblogs.com/angelica-duhurica/p/11144309.html

2019-07-06 21:51:00 206

转载 mybatis(六):设计模式 - 工厂方法模式

转载于:https://www.cnblogs.com/angelica-duhurica/p/11144296.html

2019-07-06 21:50:00 391

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除