- 博客(13)
- 资源 (2)
- 收藏
- 关注
原创 JAVA内存溢出与内存泄露
名词解释内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导致out of memory!java内存分配策略Java 程...
2019-01-05 18:01:34 739 1
原创 spring的aop注解含义及使用
在了解和使用springAOP注解之前,我们有必要学习一下java5.0中新增的注解(Annotation)技术。1.1、了解注解 注解遵循着一个基本原则:注解不能直接干扰代码运行,无论增加或删除注解,代码都能够正常运行。java语言解释器会忽略这些注解,而由第三方工具负责对注解进行处理。第三方工具可以利用代码中的注解间接控制程序代码的运行,它们通过java反射机制读取注解的信息,并根据...
2018-07-27 15:42:24 19924 1
原创 JAVA高级工程师面试总结(持续更新)
1.项目介绍数据模型和业务场景,分库分表的实现,缓存是怎么使用的,缓存和表数据的一致性是怎么保证的,缓存穿透怎么解决2.线程的基本状态,线程是怎么执行的,独占锁和共享锁的原理,AQS的实现,线程池怎么使用的,每个参数的解释,线程是怎么回收的,核心线程能不能被回收3.数据库表设计,分布式事务一致性4.介绍一个设计模式,并针对其实现问一些原理...
2020-08-25 17:29:21 313
原创 拆箱与装箱,看这一篇博客就够了!
开这篇博客之前,先说下Long和long的区别java有八大基本数据类型,byte(8),char(16),short(16),int(32),long(64),float(32),double(64),boolean(1)对应的八种包装类型,Byte,Char,Short,Integer,Long,Float,Double,Boolean对于包装类来说,它的用途主要有两种:a.作为基本类型对应的类类型,方便对象操作b.包含每种基本数据类型的最大值,最小值等操作方法双等号针对基本数据类型比较的是
2020-08-17 22:29:56 371
原创 mysql语句优化
一.执行计划可参考这篇博客:https://blog.csdn.net/wuseyukui/article/details/71512793二.索引类型主键索引:是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。唯一索引:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。普通索引:Normal建立在单列或多列上,用于加快查询速度,一张表可建立多个普通索引。...
2019-03-21 20:39:56 245
转载 装饰器模式
装饰器模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。介绍意图:动态地给...
2019-01-25 17:51:05 181
原创 原型模式
原型模式原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此...
2019-01-19 17:47:58 187
转载 Java代码优化
代码优化细节(1)尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所...
2018-12-22 16:04:18 793 1
原创 Object源码解析
Object源码解析简介类Object是类层次结构的根类。每个类都使用Object作为超类。所有对象(包括数组)都实现这个类的所有方法。源码解读package java.lang;public class Object { /*一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用*/ private static native void registe...
2018-12-07 17:31:51 207
原创 Redis介绍
Redis1.redis简介 redis是用c语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下: 1.字符串类型(string) 2.散列类型(hashs) 3.列表类型(lists) 4.集合类型(sets) 5.有序集合类型(sorted sets) 官方提...
2018-12-01 16:33:14 791
转载 java内存模型
JAVA内存模型:https://mp.weixin.qq.com/s?__biz=MzIxNjA5MTM2MA==&mid=2652434841&idx=1&sn=cbd9a98d35a8f6f64821e811b35ea2b3&chksm=8c620e16bb1587005c500f114ff9e5cec7713c4f8d1e0ed5ab595ad31d48f4...
2018-11-25 22:37:02 110
转载 String源码解析
String源码解析1.实现接口public final String implements java.io.Serializable, Comparable<String>, CharSequence{java.io.Serializable 这个序列化接口没有任何方法和域,仅用于标识序列化的语意。Comparable 这个接口只是一个compareTo(T o)接口...
2018-11-16 10:32:15 129
转载 一张图看懂JVM
一张图看懂JVM来自微信公众号:无敌码农 JVM结构示意图 JVM总体概述 JVM总体上是由类装载子系统(ClassLoader)、运行时数据区、执行引擎、内存回收这四个部分组成。其中我们最为关注的运行时数据区,也就是JVM的内存部分则是由方法区(Method Area)、JAVA堆(Heap)、虚拟机栈(Stack)、程序计数器、本地方法栈这几部分组成;除此以...
2018-09-22 16:44:16 333
JDK和Eclipse安装教程
2018-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人