Java基本数据类型、关键字

一、Java基本数据类型

Java有8中基本数据类型:byte\char \short \int\float\double\long\boolean

在说明每种类型大小前需要明确下面两个概念:

  • 字节=byte,是由8位带符号的二进制数表示的。

  • 字符=char,是由Unicode编码表示

    下面是每种类型的大小

  • byte 1字节 取值范围 -128至127

  • char 2字节

  • short 2字节

  • int 4字节

  • float 4字节

  • double 8字节

  • long 8字节

  • boolean 2字节

    关于byte取值范围补充下面文章:

    详解java中的byte类型 - 进击的石头—GO! - 博客园

    总结来说就是Java采用的是有符号数即区别正负数,每个类型的二级制表示的首位是符号位0表示整数,1表示负数。负数转换为正常的十进制数是由二进制数取反再加一得到。

    因此我们在进行类型转换(特别是高精度转低精度)要注意因为精度变化导致的截断。

二、Java常用关键字

  • this

    表示当前对象,需要注意的是静态变量和方法并不适用

  • super

    表示父类对象 不能与this同时使用

  • instanceof

    判断某个对象是否是某个特定类的对象

  • transient

    被该关键字修饰的变量在进行序列化的时候不会被序列化

  • static

    修饰属性则该属性是类共享的,即被该类所有对象共享,在内存中只有一个副本,当且仅当类初次加载时被初始化。

    修饰方法则该方法是类共享的。要注意的是类的静态方法不能调用非静态方法,但是本类的非静态方法可以访问类的静态方法。

    静态代码块在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。

类加载的过程,类本身也是保存在文件中(字节码文件保存着类的信息)的,java会通过I/O流把类的文件读入JVM(java虚拟机),这个过程称为类的加载。JVM会通过类路径(CLASSPATH)来找字节码文件。需要的时候才会进行类加载,生成对象时是先加载后构造。类变量,会在加载时自动初始化,初始化规则和实例变量相同。类中的实例变量是在创建对象时被初始化的。

Static修饰的属性,是在类加载时被创建并进行初始化,类加载的过程只进行一次,也就是类变量只会被创建一次。

初始代码块就叫做静态初始代码块,这个代码块只在类加载时被执行一次。

动态初始代码块,写在类体中的“{}”,这个代码块是在生成对象时运行,这种代码块叫动态初始代码

  • final

    修饰变量,变量赋值后不可再改变此时即为常量,常量可以在初始化时直接赋值,也可以在构造方法里赋值,只能在这两种方法里二选一,不能不为常量赋值。静态常量只能在初始化时直接赋值

    修饰方法将不能被其子类覆盖,保持方法的稳定不被覆盖

    Final修饰的类将不能被继承,final类中的方法也都是final的
  • abstract

    修饰变量即编译时类型。

    修饰类即抽象类不可实例化

    抽象类就相当于一个类的半成品,需要子类继承并覆盖其中的抽象方法,这时子类才又创建实例的能力,如果子类没有实现父类的抽象方法,那么子类也要为抽象类。

    修饰方法变成抽象方法,也就是只有声明而没有实现,实现部分以”;”代替,需要子类继承实现。

    有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。

最新文章

  1. 深入理解javascript对象系列第三篇——神秘的属性描述符
  2. cocos2d 3.X Shader 变暗和变灰
  3. python数据结构与算法——链表
  4. ASP.NET MVC学习之模型模板篇
  5. 所有Mac用户都需要知道的9个实用终端命令行
  6. 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
  7. 在Xcode6.1.1模拟器中点击UITextView不出现软键盘?
  8. 夺命雷公狗---node.js---13之Buffer的转换
  9. java.io.IOException: open failed: EACCES (Permission denied)问题解决
  10. HTML Canvas 鼠标画图
  11. poj 1811 Pallor Rho +Miller Rabin
  12. php设计模式笔记--总结篇
  13. Java 脚本引擎
  14. MySQL 笔记整理(16) --“order by”是怎么工作的?
  15. 环境准备—之—linux下安装python3和pip3
  16. Linux IDR机制【转】
  17. 如何利用cURL和python对服务端和web端进行接口测试
  18. Java中资料的上传与下载
  19. Android: View换切后,无法正常设置焦点或切换后TextView的虚拟键盘不弹出
  20. (原创)PouchDB 图片本地存储(web离线应用)

热门文章

  1. 一文说通Jwt、Session、Cooike区别
  2. undertow配置
  3. Asp.net Core启动流程讲解(四)
  4. javaweb中自己遇到的问题
  5. 微信小程序——导航栏组件
  6. TX-LCN 分布式事务框架
  7. Python最火的第三方开源测试框架 ——pytest
  8. Python和Nose实现移动应用的自动化测试
  9. element-ul二次封装table表格
  10. 无法创建新虚拟机: 无法打开配置文件“F:\BigData\vm12\centos01\centos01.vmx”: 拒绝访问。