Java基本语法(上)

Java基本语法(上)

1. 注释

单行注释://后跟单行的注释文字;

多行注释:/* ... */在第一个斜杠加星号后换行补充需要注释的内容;

JavaDoc文档注释:/** ... */在第一个斜杠双星后面换行写需要注释的内容,每行都需要有星号存在;

2. 标识符

注意点:

  1. 所有的标识符都应该以字母(A-Z或者a-z),美元符($)或者下划线(_)开始;
  2. 首字符之后可以是字母,美元符,下划线或数字的任意字符组合;
  3. 需要注意的是,不能使用关键字作为变量名或方法名;
  4. 标识符的大小写是敏感的;可以使用中文汉字命名,也可以用拼音,但不建议。

3. 数据类型

强类型语言:

​ 要求变量的使用要严格符合规定,所有变量都必须先定义之后才能使用;

弱类型语言:

​ 变量使用不需严格符合规定,不是所有变量都必须先定义之后才能使用;

Java的数据类型分为两大类:

  1. 基本数据类型:

数值类型:

  • 整数类型:byte占一个字节范围 -128127;short占两个字节范围-3276832767;int占四个字节范围-21474836482147483647;long占八个字节范围-92233720368547758089223372036854775807;
  • 浮点类型:float占四个字节;double占八个字节;
  • 字符类型:char占两个字节;

boolean类型:占一位,其值只有true与false两个。

  1. 引用数据类型:

类、接口、数组。

什么是字节?

  • 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数;
  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示;
  • 1B(byte,字节)=8bit(位)
  • 字符:是指计算机中使用的字母、数字、字和符号;
  • 1bit表示一位,1byte表示一个字节 1B=8b,1024B=1KB,1024KB=1M,1024M=1G;

4. 整数拓展

几种常用的进制:二进制 0b开头;八进制 0开头;十进制;十六进制 0x开头;

int i=10;
int i2=010;
int i3=0x10;
int i4=0b10;
    System.out.println(i);
    System.out.println(i2);
    System.out.println(i3);
    System.out.println(i4);

5. 浮点数拓展

​ float double 缺点:有限,离散,舍入误差,大约,接近但不等于,不精确;最好完全避免使用浮点数进行比较;不适用于处理银行业务;当需要处理银行类业务,通常会使用类BigDecimal数学工具类;

float c=0.1f;
double d=1.0/10;
System.out.println(c==d);//两者皆是0.1,显示为false,但其实相等
float d1=222222222;
float d2=d1+1;
System.out.println(d1==d2);//显示为true,但其实不相等

6. 字符拓展

  • char中可以放入单个字符;
  • 转义字符还有许多,需要可以自查;
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println(c2);
System.out.println((int)c1);//强制转换;转换数字其中涉及的是Unicode码;97=a,65=A
System.out.println((int)c2);//所有的字符本质还是数字;
char c3='\u0061';//16进制97;u0000~u10ffff
System.out.println(c3);//a
//转义字符
//\t 制表符 \n 换行  ......

7. 类型转换

Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换;

低到高:byte,short,char->int->long->float->double

在运算中,不同类型的数据首先转换为同一类型,然后进行运算,分为强制类型转换和自动类型转换;

强制转换:(类型)变量名 高->低;

自动转换: 低到高;

注意点:

  • 不能对boolean型进行转换;
  • 不能把对象类型转化为不相干的类型;
  • 在把高容量转换到低容量的时候,强制转换;
  • 转换的时候可能存在内存溢出问题,或者精度问题,需要注意!
//精度丢失
System.out.println((int)23.7);//23
System.out.println((int)-50.99f);//-50
//内存溢出
int q1=128;
byte q2=(byte)q1;
System.out.println(q2);//-128,128已经超过byte范围

char和int之间的转换

char m='a';
int n=m+1;
//出发点不一样,结果不一样
System.out.println(n);//结果为98
System.out.println((char)n);//结果为b

在计算时出现的内存溢出问题以及转换方法

//jdk7新特性,数字之间的下划线并不会输出,用于区分大数
int money=10_0000_0000;
System.out.println(money);//结果为1000000000
int year=20;
int total=money*year;
long total2=money*year;
long total3=money*((long)year);
System.out.println(total);//输出-1474836480但不是20000000000,原因是结果溢出
System.out.println(total2);//结果不会改变,默认money和year都为int,转换之前存在问题
System.out.println(total3);//把其中一个转换为long类型
posted @ 2023-01-06 11:23  初来乍到的小蜗  阅读(24)  评论(0)    收藏  举报