Java基础(一)

Java基础笔记(一)

关键字

  • 定义:被java赋予特殊含义,用作专门用途的字符串(单词)
  • 特点:所有的关键字都是小写

保留字

  • 现有java版本尚未使用的字符串,但未来极有可能会使用。因此在编写程序的时候,应当尽量避开。

byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const

标识符

  • 特点: java对各种变量方法命名使用的字符串
  • 更简单的说法是:可以自己命名的地方都是标识符
  • 标识符的特点
  1. 由26个英文字母大小写,数字,_或者$组成。
  2. 数字不能开头
  3. 不可以使用关键字保留字
  4. java语言区分大小写

命令规范:

包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

变量类型

基本数据类型(八种)

  • 字符

    • char
      • char表示字符类型,2个字节。char因为有对应的Unicode编码,因此它是可以进行运算的。
  • 整数类型

    • byte, short, int, long
  • 浮点类型

    • float, double
      • 浮点类型默认是double类型,float要加f或者F
  • 布尔

    • boolean
      • 只允许true 或者 false 连个值,没有null

各类型取值范围

类型 存储空间 表数范围
byte 1字节 -128 ~ 127
short 2 -215 ~215-1
int 4 -231 ~ 231-1
long 8 -263 ~ 263-1
float 4 -3.403E38 ~ 3.403E38
double 8 -1.798E308 ~ 1.798E308
boolean true/false

虽然float是4个字节,long是8个字节,但是float能表述的范围却比long类型的大。这个涉及到底部结构,float一共32位,第一位是符号位表示正负(s),从二位-九位表示指数域(E),剩余23位表示小数域,即M,M的取值范围为[1,2)或[0,1),使用公式V=(-1)^s * M * 2^E进行换算。而long类型表示的是-2的n-1次方到(2的n-1)-1。这样就不难看出float的范围更大。

Java虚拟机中没有任何供boolean值专用的字节码指令,java语言表达所操作的boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示《java虚拟机规范 8版》

基本数据类型转化

graph LR
byte-->int
char-->int
short-->int
int-->long
long-->float
float-->double
  1. 自动类型转换
  • 容量小的类型向容量大的类型转换
  • 有多种类型数据混合运算时,会先转化成容量最大的类型
  • byte、short、char之间不会相互转换,三者在转换时都转换成int类型
  • 当把任何基本类型的值和字符串(String)进行连接运算时(+),基本类型的值将自动转化为字符串类型。
String str1 = 4;        //判断对错:no
String str2 = 3.5f + “”;             //判断str2对错:yes
System.out.println(str2);        //输出:3.5
System.out .println(3+4+“Hello!”);     //输出:7Hello!
System.out.println(“Hello!”+3+4);      //输出:Hello!34
System.out.println(‘a’+1+“Hello!”);    //输出:98Hello!
System.out.println(“Hello”+‘a’+1);     //输出:Helloa1

  1. 强制类型转化
  • 自动类型转化的逆过程,可能会造成精度缺失。
public static void main(String[] args) {
        float num1 = 3.2f;
        int num2 = (int) num1;
        System.out.println(num2);
    }

结果: 3 缺失了精度

  • 字符串可以通过基本数据类型的包装类进行转化(不包含boolean)
String a = "43";
int i = Integer.parseInt(a);
System.out.println(i);

结果: 43

1) short  s = 5;
    s = s-2;                       //判断:no
2) byte b = 3;
    b = b + 4;                  //判断:no
    b = (byte)(b+4);        //判断:yes
3) char c = ‘a’;
    int  i = 5;
    float d = .314F;
    double result = c+i+d;     //判断:yes
4) byte b = 5;
    short s = 3;
    short t = s + b;          //判断:no

引用数据类型(这些知识点会在以后文章中介绍)

  • 接口
  • 数组

posted @ 2019-10-16 15:24  amberbar  阅读(192)  评论(0编辑  收藏  举报