Fork me on GitHub

随笔分类 -  java

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 16 下一页
java相关教程
摘要:简介 java中可以被称为Number的有byte,short,int,long,float,double和char,我们在使用这些Nubmer的过程中,需要注意些什么内容呢?一起来看看吧。 Number的范围 每种Number类型都有它的范围,我们看下java中Number类型的范围: 考虑到我们 阅读全文
posted @ 2020-09-10 09:52 flydean 阅读(1083) 评论(0) 推荐(0) 编辑
摘要:简介 在java对象和字段的初始化过程中会遇到哪些安全性问题呢?一起来看看吧。 初始化顺序 根据JLS(Java Language Specification)中的定义,class在初始化过程中,需要同时初始化class中定义的静态初始化程序和在该类中声明的静态字段(类变量)的初始化程序。 而对于s 阅读全文
posted @ 2020-09-06 08:58 flydean 阅读(351) 评论(0) 推荐(0) 编辑
摘要:简介 mutable(可变)和immutable(不可变)对象是我们在java程序编写的过程中经常会使用到的。 可变类型对象就是说,对象在创建之后,其内部的数据可能会被修改。所以它的安全性没有保证。 而不可变类型对象就是说,对象一旦创建之后,其内部的数据就不能够被修改,我们可以完全相信这个对象。 虽 阅读全文
posted @ 2020-09-03 09:22 flydean 阅读(571) 评论(0) 推荐(0) 编辑
摘要:简介 JDK是在一直在迭代更新的,很多我们熟悉的类也悄悄的添加了一些新的方法特性。比如我们最常用的HashMap。 今天给大家讲一下HashMap在JDK8中添加的两个新方法compute和merge,从而实现一行代码实现单词统计的功能。一起来看看吧。 爱在JDK8之前 JDK8为我们引入了很多非常 阅读全文
posted @ 2020-08-30 16:40 flydean 阅读(531) 评论(0) 推荐(0) 编辑
摘要:简介 作为一个程序员,只是写出好用的代码是不够的,我们还需要考虑到程序的安全性。在这个不能跟陌生人说话世界,扶老奶奶过马路都是一件很困难的事情。那么对于程序员来说,尤其是对于开发那种对外可以公开访问的网站的程序员,要承受的压力会大很多。 任何人都可以访问我们的系统,也就意味着如果我们的系统不够健壮, 阅读全文
posted @ 2020-08-25 09:57 flydean 阅读(904) 评论(1) 推荐(0) 编辑
摘要:简介 我们经常会听到甚至需要自己动手去做GC调优。那么GC调优的目的到底是什么呢?让程序跑得更快?让GC消耗更少的资源?还是让程序更加稳定? 带着这些疑问来读一下这篇文章,将会得到一个系统的甚至是不一样的结果。 那些GC的默认值 其实GC或者说JVM的参数非常非常的多,有控制内存使用的: 有控制JI 阅读全文
posted @ 2020-08-18 07:51 flydean 阅读(680) 评论(0) 推荐(0) 编辑
摘要:简介 java程序的性能问题分析是一个很困难的问题。尤其是对于一个非常复杂的程序来说,分析起来更是头疼。 还好JVM引入了JFR,可以通过JFR来监控和分析JVM的各种事件。通过这些事件的分析,我们可以找出潜在的问题。 今天我们就来介绍一下对java性能分析比较重要的一些JFR事件。 GC性能事件 阅读全文
posted @ 2020-08-16 09:06 flydean 阅读(807) 评论(0) 推荐(0) 编辑
摘要:简介 java.lang.OutOfMemoryError应该java应用程序中非常常见的一个的错误了。 那么OutOfMemoryError产生的原因是什么呢?我们怎么去查找相应的错误呢?一起来看看吧。 OutOfMemoryError 先看一下OutOfMemoryError的定义,OutOfM 阅读全文
posted @ 2020-08-14 10:08 flydean 阅读(869) 评论(0) 推荐(0) 编辑
摘要:简介 虽然java有自动化的GC,但是还会有内存泄露的情况。当然java中的内存泄露跟C++中的泄露不同。 在C++中所有被分配的内存对象都需要要程序员手动释放。但是在java中并不需要这个过程,一切都是由GC来自动完成的。那么是不是java中就没有内存泄露了呢? 要回答这个问题我们首先需要界定一下 阅读全文
posted @ 2020-08-12 09:32 flydean 阅读(1009) 评论(1) 推荐(0) 编辑
摘要:简介 如果我们在程序中遇到线程死锁的时候,该怎么去解决呢? 本文将会从一个实际的例子出发,一步一步的揭开java问题解决的面纱。 死锁的代码 写过java多线程程序的人应该都知道,多线程中一个很重要的事情就是状态的同步,但是在状态同步的过程中,一不小心就有可能会导致死锁的问题。 一个最简单的死锁情况 阅读全文
posted @ 2020-08-08 21:52 flydean 阅读(469) 评论(1) 推荐(0) 编辑
摘要:safepoint是什么 java程序里面有很多很多的java线程,每个java线程又有自己的stack,并且共享了heap。这些线程一直运行呀运行,不断对stack和heap进行操作。 这个时候如果JVM需要对stack和heap做一些操作该怎么办呢? 比如JVM要进行GC操作,或者要做heap 阅读全文
posted @ 2020-08-07 09:57 flydean 阅读(3189) 评论(1) 推荐(0) 编辑
摘要:简介 之前我们在讲Virtual call的时候有提到,virtual call方法会根据传递的参数实例的不同而进行优化,从而优化成为classic call,从而提升执行效率。 今天我们考虑一下,在virtual call中执行nullcheck的时候,如果已经知道传递的参数是非空的。JIT会对代 阅读全文
posted @ 2020-08-06 07:45 flydean 阅读(2092) 评论(0) 推荐(0) 编辑
摘要:简介 Volatile关键字对熟悉java多线程的朋友来说,应该很熟悉了。Volatile是JMM(Java Memory Model)的一个非常重要的关键词。通过是用Volatile可以实现禁止重排序和变量值线程之间可见两个主要特性。 今天我们从汇编的角度来分析一下Volatile关键字到底是怎么 阅读全文
posted @ 2020-08-05 10:00 flydean 阅读(866) 评论(1) 推荐(0) 编辑
摘要:简介 上一篇文章我们讲解了Virtual Call的定义并举例分析了Virtual Call在父类和子类中的优化。 JIT对类可以进行优化,那么对于interface可不可以做同样的优化么? 一起来看看吧。 最常用的接口List List应该是大家最最常用的接口了,我想这个大家应该不会反驳。 pub 阅读全文
posted @ 2020-08-04 09:07 flydean 阅读(376) 评论(1) 推荐(1) 编辑
摘要:简介 什么是Virtual Call?Virtual Call在java中的实现是怎么样的?Virtual Call在JIT中有没有优化? 所有的答案看完这篇文章就明白了。 Virtual Call和它的本质 有用过PrintAssembly的朋友,可能会在反编译的汇编代码中发现有些方法调用的说明是 阅读全文
posted @ 2020-08-03 10:35 flydean 阅读(671) 评论(0) 推荐(0) 编辑
摘要:简介 有了java class文件之后,为了让class文件转换成为JVM可以真正运行的结构,需要经历加载,链接和初始化的过程。 这三个过程是怎么工作的呢?在本文中你将会找到答案。 加载 JVM可以分为三大部分,五大空间和三大引擎,要讲起来也不是特别复杂,先看下面的总体的JVM架构图。 从上面的图中 阅读全文
posted @ 2020-08-01 17:55 flydean 阅读(754) 评论(1) 推荐(0) 编辑
摘要:简介 内置方法是什么呢?它和inline method有什么关系呢?内置方法是怎么实现的呢?所有的问题都可以在本文找到答案。 什么是Intrinsic Methods 什么是内置方法呢? 维基百科给出的定义是这样的: 在计算机软件中,按照编译器理论,固有方法(或内置方法)是可在给定编程语言中使用的方 阅读全文
posted @ 2020-07-30 08:16 flydean 阅读(2076) 评论(1) 推荐(0) 编辑
摘要:简介 java方法中定义的变量,它的生命周期是什么样的呢?是不是一定要等到方法结束,这个创建的对象才会被回收呢? 带着这个问题我们来看一下今天的这篇文章。 本地变量的生命周期 在类中,变量类型有类变量,成员变量和本地变量。 本地变量指的是定义在方法中的变量,如果我们在方法中定义了一个变量,那么这个变 阅读全文
posted @ 2020-07-29 09:11 flydean 阅读(407) 评论(1) 推荐(0) 编辑
摘要:简介 String对象有个特殊的StringTable字符串常量池,为了减少Heap中生成的字符串的数量,推荐尽量直接使用String Table中的字符串常量池中的元素。 那么String.intern的性能怎么样呢?我们一起来看一下。 String.intern和G1字符串去重的区别 之前我们提 阅读全文
posted @ 2020-07-28 08:41 flydean 阅读(807) 评论(1) 推荐(1) 编辑
摘要:5万字长文详解介绍Stream和Lambda表达式最佳实践,干货实在太多,最后附上PDF下载,方便大家查阅! 阅读全文
posted @ 2020-07-27 07:35 flydean 阅读(4046) 评论(3) 推荐(2) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 16 下一页