java小知识

1、局部变量存在于栈内存中,全局变量和静态全局变量存在于堆内存中

2、堆栈

堆:其内存分配在堆上或者常量池(字符串常量、基本数据类型常量),需要通过new等方式来创建。

     堆内存主要作用是存放运行时创建(new)的对象。

栈:一般基本数据类型,对象的引用变量 基本数据类型的变量(int、short、long、byte、float、double、boolean、char等)以及对象的引用变量,其内存分配在栈上,变量出了作用域就会自动释放。

Car car = new Car();

int i =2;

String string = new String("1");

栈      堆

car       new Car()

i          

string   new String("1")

一个方法执行时,会产生一个栈内存,所有里面的局部变量都在栈内存中,方法结束,栈内存消息,不需要系统回收。

所以初始化对象时尽量不用new ,=null即可。对象的开销比较大

 

JVM:是基于堆栈的虚拟机,每个Java程序在一个独立的JVM实例上运行,每个JVM实例对应一个堆,

          同个java程序内的多线程运行在同个JVM实例上,多个线程之间共享堆内存(多线访问堆时,要实现数据的同步)。

 

3、string类型compareTO方法

从首字母开始比较acs值

“a”.compareTo("a1")     -1

“a”.compareTo("c")      -2

 

4、jvm缓存,integer与Long类型

Integer i1 =100,Integer i2=100 i1==12 true

Integer i1 =1000,Integer i2=1000 i1==12 false

jvm缓存中会缓存值在-128-127的值,这些值指向同一个内存空间。当超过127就会new 一个新的对象

posted @ 2017-06-14 14:39  无敌的小小哒  阅读(114)  评论(0编辑  收藏  举报