Java
zdj_develop
这个作者很懒,什么都没留下…
展开
-
Java的垃圾回收以及常用的垃圾回收算法
Java内存管理主要涉及三个部分:堆(Java代码可及的Java堆和JVM自身使用的方法区)、栈(服务Java方法的虚拟机栈和服务Native方法的本地方法栈)和保证程序在多线程环境下能够连续执行的程序计数器。Java堆是进行垃圾回收的主要区域,故其也称为GC堆;而方法区的垃圾回收主要针对的是新生代和中生代。总的来说,堆(包括Java堆和方法区)是垃圾回收的主要对象,特别是Java堆。判断对象是否需要回收?(也就是对象存活判断):这里有两种算法:1、引用计数每个对象有一个引用计数属性原创 2021-11-30 10:31:41 · 535 阅读 · 0 评论 -
JVM的内存模型
Java虚拟机所管理的内存包含程序计数器、Java虚拟机栈、本地方法栈、Java堆和方法区5个部分。模型图如下图所示:1、程序计数器:为了线程切换后能恢复到正确的执行顺序,每个线程都需要一个独立的程序计数器,各个线程之间的计数器互不影响。独立存储,这类内存区域为【线程私有】的内存。程序计数器具有如下的特点:是一块较小的内存空间。 线程私有,每条线程都有自己的程序计数器。 生命周期方面,随着线程的创建而创建,随着线程的结束而销毁。 是唯一一个不会出现OutOfMemoryErro原创 2021-11-29 14:02:43 · 297 阅读 · 0 评论 -
关于普通for循环和增强for循环
什么时候使用普通for循环,什么时候使用增强for循环首先,增强for循环的写法比普通for循环简便,不过我们还得考虑效率。--->首先,我们先看结论:对于基本数组类的遍历,两者的效率是相同的;对于ArrayList的遍历,普通for循环的效率高于增强for循环;对于LinkedList的遍历,增强for循环的效率高于普通for循环。--->然后,我们来看...原创 2020-03-26 15:17:31 · 1202 阅读 · 0 评论 -
Java之Date、Calendar、SimpleDateFormat总结
涉及到时间、日期时,我们通常会用到Java中的Date、Calendar、SimpleDateFormat这几个类。今天我们就来详细分析下这几个类,以及它们的一些常用用法。原创 2017-08-27 21:49:41 · 649 阅读 · 0 评论 -
java中去除数组重复元素
今天这篇文章总结记录下java中去除数组重复元素。方法一:创建一个集合,然后遍历数组逐一放入集合,并且在放入之前用contains方法判断集合中是否已经存在这个元素,如果不存在,则放入,最后用toArray转成数组。代码如下:public static Object[] arrayDeduplication(Object[] originArray) { List lis...原创 2019-03-21 09:48:27 · 10685 阅读 · 1 评论 -
DES加密/解密
这篇文章介绍在Java中如何使用DES加密/解密。主要使用到了Cipher和SecretKeySpec这两个类,这两个类分别位于:javax.crypto.Cipher和javax.crypto.spec.SecretKeySpec。下面我们直接上代码来介绍如何使用DES加密和解密。DES加密: /** * DES加密 * @param encryptBytes ...原创 2019-04-15 18:07:35 · 1214 阅读 · 1 评论 -
SHA512加密
这篇文章介绍Java中如何使用SHA512加密。我们主要用到了MessageDigest这个类,它位于java.security.MessageDigest。下面我们直接上代码, public static String encryptPasswordWithSHA512(String password) { try { MessageDiges...原创 2019-04-16 09:38:15 · 3995 阅读 · 0 评论 -
Base64+DES加密/解密实战演练
这篇文章我们来看一下Base64+DES加密/解密实战演练。关于DES加密/解密可以参考我的另一篇博客DES加密/解密。首先,我们设置一个key,String key = "abcdefghijkl123456@#";然后我们取前8个字节,得到最终的key(注意,使用DES必须这么做)byte[] finalKey = new byte[8];System.arraycopy(key...原创 2019-04-16 10:28:12 · 853 阅读 · 0 评论