Java的一些基础语法(注释、数据类型)

Java的一些基础语法

注释、标识符

  • 单行注释://

  • 多行注释:/ * 文字 * /

  • 文档注释:/ ** 文字 */

    表示符号以字母、美元符或下划线开始如String a = “变量”

类型转换

运算中,不同类型的数据先转化为同一类型,然后进行运算

数据类型

Java是强类型定义语言,要求所有变量先定义后使用,安全性高

Java的基本数据类型有:

  • 整数类型:byte(只可表示-128到127)、short(-32768到32767)、int、long

    long num4 = 30L;//long类型要在数字后面加L
    
  • 浮点类型:float(可表示7位有效数字)、double(常用)

    float num5 = 40.2F;//加F
    double num6 = 3.14151111858945;
    
  • 字符类型:char
    char类型占两个字节并且没有符号位,表示范围:0-65533
    注意char是用来表示单个字符的,多个字符连起来的用String类

    char name = 'A';//单个字符
    String name2 = "AAAA";//这里String是类不是基本数据类型
    
  • boolean类型:

//boolean代表是非
boolean flag = true;
boolean flag2  = false;

基本数据类型的常见问题:

整数拓展

//进制     二进制0b    十进制    八进制0    十六进制0x
int i = 10;//十进制
int i2 = 010;//八进制
int i3 = 0x10;//十六进制0x  0~9 A~F F相当于16

System.out.println(i);
System.out.println(i2);
System.out.println(i3);

结果是:

在这里插入图片描述

浮点数拓展

银行业务怎么表示?钱 (使用float和double会有问题)

以下有

float f = 0.1f;//0.1
double d = 1.0/10;//0.1
System.out.println(f==d);
System.out.println(f);
System.out.println(d);

的结果为:

在这里插入图片描述

float d1 = 2312121213123156f;
float d2 = d1+1;
System.out.println(d1==d2);

的结果为true。由于float表示的范围有限,所以太长的值比较的结果会是一个大约数,存在舍入误差。所以最好完全舍去使用浮点数进行比较。银行业务要用BigDecimal这个数学工具类来实现。
另外定义大数字如一亿时,可

int money = 10_0000_0000;

这样子的代码便于观察,下划线在结果中不会被输出

int money = 10_0000_0000;
int years = 20;
long total = money*years;
System.out.println(total);

的输出是-1474836480。可以看到total是long类型的,但是最终的结果是由于计算时溢出导致的,在转换为long之前由于int范围不够,就已经出现了问题,可用下面代码解决。

long total2 = money*(long)years;

这样输出就是正常结果。

字符拓展

所有的字符本质还是数字,可以使用强制转换的方法把char换成int类型(Unicode表 如97=‘a’),但在转换过程中也要注意内存溢出的问题,且要注意精度,如:

System.out.println((int)-15.89);

的结果是-15。

char c = 'a';
int d = c+1;
System.out.println(d);
System.out.println((char)d);

输出为98和b,说明:

  1. 由高转低(char转int)是自动转换,无须强转
  2. 第二个输出那里b值是看Unicode表对应的。

转义字符

常用的\t是制表符,\n是换行

System.out.println("Hello\tWorld");

在这里插入图片描述

类型转换

自动转换是指从小类型到大类型
例如int或char转换为double

byte b1 = 10;
short s1 = 20;
s1 = b1;
//表示把变量b1的值赋给s1,相当于从byte到short

强制转换是从大到小的

byte b1 = 10;
short s1 = 20;
b1 = (byte)s1;

但是会造成数据损失

布尔值拓展

下面两汉代码的意义是一样的

boolean flag = true;
if (flag==true){
    
    }
if (flag){
    
    }

自动类型转换是指从小类型到大类型的转换;强制类型转换就是从大类型到小类型的转换

引用类型

类、接口、数组

猜你喜欢

转载自blog.csdn.net/Maybe_do_it/article/details/113813135