java基础----1

jre和jdk的区别

  • jre全称Java Runtime Environment,顾明思义既是java运行环境,包括java虚拟机(jvm),java核心类库和支持文件,若你只想运行java程序,有jre就够了
  • jdk全称Java Development Kit,java开发工具,它包含了jre。还包括了编译器(javac)、调试器(jdb)还有其他工具,这是给开发人员使用的

sdk和ndk的区别

  • sdk全称Software Development Dit,软件开发工具,所以一般都会在前面说明XXX的sdk,因为本人是学android的,android的sdk包括:提供在各种系统平台上开发app的开发组件,各种工具集(模拟器,调试,打包,adt)
  • ndk,同样是开发Android应用的软件开发包,不同的是它是用C语言编写的,一般适合用于开发手机驱动或底层应用等,效率高。

java数据类型及占用字节及对应包装类

数据类型包装类占用字节数据类型包装类占用字节
byteByte1booleanBoolean1
charCharacter2shortShort2
intInteger4floatFloat4
doubleDouble8longLong8

注:内存运算过程中,占用字节少的数据运行速度会更快

java四种应用

  • 强引用,用的最多的一种引用,可能你不知不觉就使用了它,例如Person p = new Person()
    ,java垃圾回收器工作时宁愿抛出OOM也不愿意去回收强引用的对象。
  • 软引用,用来描述有用但不必须要的对象,当内存即将溢出的时候就会回收对象,使用弱引用是防止内存泄漏的一个手段
  • 弱引用,一个被弱引用关联的对象,在jvm进行垃圾回收时无论内存是否充足都必定会去回收它,但要注意,在开发中肯定会存在一个对象被强引用,同时又被弱引用 ,这时候GC不会回收该对象,软引用也一样,此时应该把强引用的对象置空,可能有人会问,既然都把强引用对象置空了还要弱引用干嘛,这样做是为了防止内存泄漏。
  • 虚引用,一个被虚引用关联的对象,随时都有可能被回收。

String、StringBuffer、StringBuilder

  • String:字符串常量,被final修饰,线程安全,每次更改它的值都会在堆里new出一个对象,注意:String new对象时会有两步:1.在堆里生成一个String对象;2.在常量池寻找String指向的值,没有则创建这个值在常量池。
  • StringBuffer:字符串变量,每次对StringBuffer对象进行操作时,就是对本身自己操作,不会产生新的对象,StringBuffer的方法被synchronized修饰,为了防止多线程下的访问冲突。
  • StringBuilder:字符串变量,与StringBuffer相似,StringBuilder没有synchronized修饰,在单线程下效率比StringBuffer高
  • 对于三者使用的总结:1.如果要操作少量的数据用 String
              2.单线程操作在字符串缓冲区下操作大量数据用 StringBuilder
              3.多线程操作在字符串缓冲区下操作大量数据用 StringBuffer
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值