
java
文章平均质量分 84
yamikaze
新人
展开
-
Java对象在内存中的布局
文章目录1、-XX:FieldsAllocationStyle2、-XX:CompactFields3、@sun.misc.Contended4、静态字段的偏移量计算5、示例5.1、-XX:FieldsAllocationStyle5.2、-XX:CompactFields5.3、Contended6、其他6.1、通过Unsafe获取实例字段和静态字段的偏移量6.2、Unsafe是如何进行实例字段和静态字段偏移量的获取,以及如何通过CAS操作改变值Java对象在内存中属于oop-klass二分模型,即对原创 2021-06-14 23:05:03 · 1764 阅读 · 1 评论 -
Java对象比较
对于Java的对象比较,聊一下个人的看法。我们知道Java里面比较对象相等,有2种方式 ,== 或者 equals方法。equals比较方式比较简单,在这儿不做过多说明,主要对==方式进行说明。1、基本类型比较Java的8大基本类型可以直接使用==进行比较,可以认为这儿的基本类型的比较是值比较。 例如下面的代码块: int i = 1; int j = 2; Syste...原创 2019-12-23 21:19:27 · 507 阅读 · 0 评论 -
证明Java中int类型内存大小为4个字节
序不久前看到一代码片段,如下:int wordlength(void) { int i = 1; unsigned j = (unsigned)~0; for(; (j = j >> 1) > 0; i++) ; return i;}上述代码片段用于计算计算机的字长(计算机一次性可操作的字节数),例如 32位操作系统可以一次性读取4个字节,64位操作系统可...原创 2019-12-21 20:27:39 · 1675 阅读 · 0 评论 -
如何让三条线程依次输出Hello World!
1、线程睡眠法 启动三条线程,每条线程睡眠指定的时间,从而达到效果。private static void sleep() { System.out.println("========enter sleep========"); ThreadFactory factory = ThreadFactoryBuilder.getThreadFactory("pri...原创 2018-03-13 21:58:05 · 1387 阅读 · 0 评论 -
记一次OOM总结
前言:项目将要上线之际,后台管理交给乙方添加数据+上传资料等等,前台正微调中,在快要下班之际,乙方突然反应传一个300MB的视频没传上去,报错了(这儿就不要吐槽为啥用web传大视频了,已经被吐槽过了)。然后上服务器查看日志,错误信息是OutOfMemoryError :Java heap space。 项目是使用Spring boot搭建,文件上传到服务器,服务器再上传到七牛云。原创 2017-10-18 20:27:04 · 506 阅读 · 0 评论 -
Spring IOC三种注解注入Inject、Resource、AutoWired区别与IOC注入过程
Spring三种注解方式的区别:@AutoWired、@Resource、@Inject1、 @AutoWired是Spring自带的方式 @Resource是JSR-250标准,JDK6以上自带,Spring版本要求2.5以上 @Inject是JSR-303标准,Spring版本3以上。需要导入外部依赖。2、 @AutoWired可以用在构造器、方法、属性原创 2017-09-09 01:08:14 · 3967 阅读 · 1 评论 -
Spring MVC的几个注解
1、@RestController与@Controller。这两个注解用于声明WEB控制器,那么区别在哪儿呢?我们知道使用Spring MVC,一个方法对应一个url,然后相应处理后返回对应的视图,但有时候不会返回视图,返回的是JSON数据,那么我们需要在方法上加上@ResponseBody像下面这样: @RequestMapping("/checkUser") @Respons原创 2017-08-06 19:11:42 · 9332 阅读 · 0 评论 -
JDK8--HashMap源码阅读
HashMap作为Java最常用的集合类之一,内部采用了数组 + 链表 + 树的形式来存储Key-Value。内部结构如下图所示: 链表在大于一定长度时会转换为树形式存储,这个长度默认是8.1、HashMap的初始化 HashMap提供了多个构造函数进行初始化,各个构造函数如下:/** * initialCapacity 容量,会作为table数组的长度,默认原创 2017-11-08 18:39:21 · 398 阅读 · 0 评论 -
Java语言中的线程安全--《深入理解Java虚拟机》笔记
《Java Concurrency In Practice》作者Brian Goetz对“线程安全”有一个比较恰当的定义:当多个线程访问访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的。Java语言中的线程安全 按照线程安全的“安全程度”原创 2017-09-08 23:41:41 · 321 阅读 · 0 评论 -
Java注解Annotation的写法以及注意
现许多流行框架都有注解配置,Java注解是JDK1.5以后引入的一个特性。它可以使用在类、方法、数据字段上。注解是与反射配合使用的,可以通过Class类的getAnnatation等方法获取注解。先来看看怎么编写注解吧。1、声明。声明类使用的是class关键字,接口是interface关键字,声明注解使用的是@interface关键字,如下:public @interface My原创 2017-08-06 21:55:15 · 2704 阅读 · 0 评论 -
Mybatis学习笔记之四:动态SQL
Mybatis的另一个优势在于它的动态SQL语言拼接。原创 2017-07-12 14:12:00 · 267 阅读 · 0 评论 -
Mybatis学习笔记之五:Mybatis3.X与Spring4.X的整合
在开始项目前,先做好一下准备工作:1、Mybatis3.X的jar包。2、Spring4.X的jar包。3、Sping与Mybatis的插件包。原创 2017-07-13 16:47:42 · 442 阅读 · 0 评论 -
Mybatis学习笔记之二:在项目中使用Mybatis
在开发之前,需要做好以下准备工作:1、JDK以及IDE已经配置完成2、数据库安装完成3、相关依赖(Mybatis的jar文件以及JDBC的驱动)笔者这儿使用的是JDK8,开发工具STS,数据库Mysql 5.6.26,Mybatis版本3.3。准备好上诉工作就可以开始编写了。1、创建数据库以及表2、创建项目并将依赖的jar包加入到类路径中。3、编写mybat原创 2017-07-09 22:36:37 · 932 阅读 · 0 评论 -
Mybatis学习笔记之三:Mybatis的常用配置介绍
现在许多框架都提供了两种配置方式,文件配置和注解配置文件配置主要使用xml文件,其他的还有properties,yml等。注解则是嵌入代码中。看到这儿应该明白,注解配置是与代码嵌在一起,没有解耦。而配置文件则是与代码分离开来,但是在实际开发中,很少有这种情况:修改配置文件但不修改代码的。Mybatis也提供了注解和文件两种配置。这儿着重介绍文件配置的方式,因为Mybatis主要就是使用文件原创 2017-07-11 11:10:02 · 606 阅读 · 0 评论 -
Mybatis学习笔记之一:Mybatis介绍
1、Mybatis的由来Mybatis前身为Ibatis。ibatis是Internet与abatis的组合,它是由Clinton Begin在2002年发起的一个开源项目,在2010年6月被谷歌托管,更名为Mybatis。版本更替:ibatis1.x --> ibatis2.x -->mybatis3.x。2、Mybatis用来做什么?Mybatis是一个半自动化的基于SQL原创 2017-07-02 21:48:03 · 567 阅读 · 4 评论