java
qin_weilong
生活赋予我们一种巨大的和无限高贵的礼品,这就是青春:充满着力量,充满着期待志愿,充满着求知和斗争的志向,充满着希望信心和青春。 —— 奥斯特洛夫斯基
展开
-
java六大存储区域
存储速度: 寄存器(register) 这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。java中,你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 C语言可以定义寄存器变量。 栈(stack) 存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中。 位于通用RAM(random-accessm...原创 2019-12-19 15:28:27 · 523 阅读 · 0 评论 -
深入理解Java基础类型
值类型 Java 语言提供了8种基本类型,大致分为4类 整数型 byte- 8 位。 short- 16 位。 int- 32 位。 long- 64 位,赋值时一般在数字后加上l或L。 浮点型 float- 32 位,直接赋值时必须在数字后加上f或F。 double- 64 位,赋值时一般在数字后加d或D。 字符型 ...原创 2019-12-19 11:06:09 · 131 阅读 · 0 评论 -
深入理解Java中的String
目录 JVM相关知识 String源码分析 Srtring在JVM层解析 String典型案例 String被设计成不可变和不能被继承的原因 JVM相关知识 下面这张图是JVM的体系结构图: 下面我们了解下Java栈、Java堆、方法区和常量池: Java栈(线程私有数据区): ...原创 2019-12-18 14:35:35 · 134 阅读 · 0 评论 -
Java数据结构与算法(一)插入排序
//插入排序 int[] array= {14,33,12,44,8,56,90,100,1,25}; int in ,out; int len=array.length; for(out=1;out<len;out++) { int temp=array[out]; in=out; while(in>0&&array[in-1]>temp...原创 2019-07-10 23:25:16 · 131 阅读 · 0 评论 -
使用JavaMail发送邮件,465端口开启ssl加密传输
有些虚拟机会限制25端口 使用JavaMail发送邮件,465端口开启ssl加密传输 package com.wangxin.test; import java.security.Security; import java.util.Date; import java.util.Properties; import javax.mail.Authenticator; import j...原创 2019-05-28 14:47:23 · 821 阅读 · 0 评论 -
学习JVM-GC收集器
1. 前言 在上一篇文章中,介绍了JVM中垃圾回收的原理和算法。介绍了通过引用计数和对象可达性分析的算法来筛选出已经没有使用的对象,然后介绍了垃圾收集器中使用的三种收集算法:标记-清除、标记-整理、标记-复制算法。 介绍完原理,在这篇文章中,我们将介绍当前JVM中已经实现的垃圾收集器,以及与收集器主题相关的一些内容。 首先,我们将在上一篇文章中提到分代收集机制的基础上,介绍下现代...转载 2019-02-18 11:23:55 · 150 阅读 · 0 评论 -
根据已有项目下lib包里jar文件生成maven的pom.xml 里面所有依赖
想将一个web项目转成Maven项目,在lib文件夹下,jar包较多的时候,就需要高效快速的生成其对应依赖来完成快速开发。那么你就来对地方了。 话不多说,直接上干货。 代码如下: import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.i...转载 2018-08-22 14:40:58 · 2161 阅读 · 2 评论 -
java 类的加载 连接 初始化
12一、加载类的加载指的是将类的.class文件中二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。在这个阶段,会执行类中声明的静态代码块。也就是类中的静态块执行时不需要等到类的初始化。 123加载.class文件的方式1、从本地系统中直接加载 2、通过网络下载.class文件 3、从zip,jar等归档...转载 2018-06-12 09:32:06 · 266 阅读 · 0 评论 -
Java中类的初始化
初始化类初始化阶段是类加载过程的最后一步,前面的类加载过程中,除了在加载阶段用户应用程序可以通过自定义类加载器参与之外,其余动作完全由虚拟机主导和控制。 到了初始化阶段,才真正开始执行类中定义的Java程序代码(或者说是字节码)。初始化阶段是执行类构造器<clinit>()方法的过程。主动引用对类进行引用时如果类没有进行过初始化,则先触发其初始化叫做主动引用。有且只有下面5中情况下才会进行主动引用...原创 2018-06-12 09:25:11 · 237 阅读 · 0 评论 -
Java substring方法与内存溢出
说明:本文是阅读《Java程序性能优化》(作者:葛一明)一书中关于substring方法内存溢出一节的笔记。一、String对象及其特点1、在C语言中对字符串的处理通常是采用char数组,但是对于数组本身来说,它无法封装字符串操作的一些基本方法,所以在Java中,String对象可以看成是char数组的一种封装。Java中数组的基本实现如下图,主要由char数组、偏移量和String的长度这三部分...转载 2018-05-21 15:22:37 · 841 阅读 · 0 评论 -
JAVA gc垃圾回收机制
一、GC概要 JVM堆相关知识 为什么先说JVM堆? JVM的堆是Java对象的活动空间,程序中的类的对象从中分配空间,其存储着正在运行着的应用程序用到的所有对象。这些对象的建立方式就是那些new一类的操作,当对象无用后,是GC来负责这个无用的对象(地球人都知道)。JVM堆 (1) 新域:存储所有新成生的对象 (2) 旧域:新域中的对象,经过了一定次数的GC循环后,被移入旧...转载 2018-03-20 15:21:27 · 101 阅读 · 0 评论 -
JVM调优总结 -Xms -Xmx -Xmn -Xss
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms3550m -Xmn2...原创 2018-03-20 15:20:00 · 104 阅读 · 0 评论