(一)Java基础语法

时间:2023-01-10 21:59:43

一.基础写法

/*
使用命令行的方式执行的时候,cmd的默认编码是GBK
所以在输入中文的时候需要设置文件的编码格式为ANSI
这样不会出现乱码格式
*/


public class HelloWorld
/*
java文件的名称必须跟public class的名称保持一致
*/
{

public static void main(String[] args)
/*
1.该代码是所有java程序的入口,如果向执行对应的java代码,则必须要添加这行代码且格式固定,
2.main中的参数列表可以支持多种写法String[] args,String [] args,Strinng args[]
3.main方法中参数名称无所谓,但是一般写成args
4.java代码在编写的时候,每行结尾的时候需要使用;结束
5.java代码块需要使用{}括起来,前后匹配
*/
{
System.out.println("学习JAVA人上人");
}
}

class Test
{

}
/*
一个java文件中可以包含多个class,但是public class只能有一个
*/

二.常量和变量

常量:在程序运行过程中,值不会发生改变的量叫做常量

变量:在程序运行过程中,值会发生改变的量叫做变量

final常量:

  • 使用final修饰的变量,只能被初始化一次,变成了常量。
  • final常量是有名称的

(一)Java基础语法

三.数据类型和运算符

1.标识符

作用:常量、变量、方法、类、包等的名称

命名规则:

  • 必须以字母、下划线、$开头
  • 其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合
  • 对​大小写敏感,但对长度无限制
  • ​不能是Java的关键字​
  • 常规建议:
  • 驼峰标识:
  • 类名、接口名首字符大写;
  • 方法、变量名首字符小写;
  • 多个单词拼接时,每个单词首字符大写。
  • 见名知义:不要用拼音

关键字(又叫保留字):Java关键字是Java语言保留供内部使用的,如class用于定义类。

(一)Java基础语法

字符集简介

​ ASCII:英文字符集 1个字节

 ISO8859-1:西欧字符集 1个字节

 BIG5:*的大五码,表示繁体汉字 2个字节

 GB2312:大陆使用最早、最广的简体中文字符集 2个字节

 GBK:GB2312的扩展,可以表示简体和繁体中文 2个字节

 GB18030:最新GBK的扩展,可以表示汉字、*文、藏文等中华民族字符 2个字节

 Unicode:国际通用字符集 2个字节

2.基本数据类型

Java是强类型语言。(强类型表示变量在定义的时候必须显示声明类型;弱类型表示变量会根据值去推断数据类型)

  • 常量有数据类型
  • 变量必须声明其数据类型

(一)Java基础语法

整型类型:

-2(n-1)--2(n-1)-1减去符号位

byte:使用一个字节存储,数据范围是(-128--127)

short:使用一个字节存储,数据范围是(-32768--32767)

int:使用四个字节存储,数据范围是(-231--231-1,约等于±21亿)

long:使用八个字节存储,数据范围是(-263--263-1)

整型常量

  • 十进制整数
  • 八进制整数:要求以0开头,如015
  • 十六进制整数:要求以0x或0X开头,如0x15

整型变量

  • 默认为int型,声明long型常量必须在数字结尾加l或L(建议使用大写,小写会和1混淆)

浮点类型:

flaot:单精度

double:双精度

浮点类型常量

  • ​十进制数形式:
  • ​3.14    314.0    0.314
  • 科学记数法形式,如
  • 314e2 314E2 314E-2
  • double f = 314e2; //314*10^2-->31400.0
  • double f2 = 314e-2; //314*10^(-2)-->3.14​

(一)Java基础语法

​浮点型变量

  • float类型:单精度类型,尾数可以精确到7位有效数字,会损失一定精度,在很多情况下,float类型的精度很难满足需求。
float f1=1.222222287988;
float f2=1.222222298766468;
System.out.println(f1==f2);//会发现结果是true,应为只有前面七位参与比较。
  • double类型:双精度类型 精度是float类型的两倍,绝大部分应用程序都采用double类型。​

​注意

  • 浮点常量默认为double,要变为float,需在后面增加F/f
  • 浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

字符类型:

char:占用两个字节,使用时用‘’表示(注意‘a’是字符;“a”是字符串)

char a='a';
System.out.println(a==97);//会发现结果是true,a的ASCII码是97
  • ​单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。
  • char 类型用来表示在Unicode编码表中的字符。
  • Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符;ASCII码占1个字节,可允许有128个字符(最高位是0),是Unicode编码表中前128个字符。
  • Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义,char c2 = '\n'; //代表换行符
  • char类型在内存中存储的是该字符的Unicode编码值,所以char类型可以当做int类型来处理​

(一)Java基础语法

布尔类型:

boolean:有true和false两值,在存储的时候占一位

3.引用数据类型

类、接口、数组

四.运算符

1.包含

  • 算术运算符: +,-,*,/,%,++,--
  • 赋值运算符 =
  • 扩展赋值运算符:+=,-=,*=,/=
  • 关系运算符: >,<,>=,<=,==,!=(返回true或false)
  • 逻辑运算符: &&,||,!,&,|
  • ​&和&&的区别
  • “&”:无论任何情况,“&”两边的表达式都会参与计算。
  • “&&”: 当“&&”的左边为false,则将不会计算其右边的表达式。即左false则false
  • “|”和“||”的区别与“&”和“&&”的区别类似。​
  • 位运算符: &,|,^,~ , >>,<<,>>> (只能操作数值,转换成二进制数)​左移乘二,右移除二
  • &,|是怎么运算符由两侧的表达式决定

(一)Java基础语法

  • 条件运算符 ?:唯一的三目运算符
  • ​​语法格式
  • x ? y : z​​(false?false:true?false:true)//结果false​
  • 执行过程
  • 其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。
  • 经常用来代替简单的if-else判断!​

没有特别说明的,使用方法和C语言差不多,可以去看看之前的。

2.优先级

(一)Java基础语法

赋值<三目<逻辑<关系<算术<单目

五.基本数据之间的转换

​在赋值运算或算术运算时,要求数据类型相同,否则要进行类型转换

转换方式:

  • 自动转换
  • 强制转换

除boolean类型外,所有的基本数据类型因为各自的精度不同,赋值时都要考虑这个问题

除boolean类型外,所有的基本数据类型包括:整型,浮点型,字符型

​算术运算时的转换

整型,浮点型,字符型数据可以混合运算。

运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。

  • 3+'A'+45L
  • 5+3.6+ 'A'+3.14f​

(一)Java基础语法

​赋值运算时的转换

1.自动类型转换(左>右)

byte b=10;
System.out.println("b="+b);
int n = b;
System.out.println("n="+n);

(一)Java基础语法

                           00001010 byte 10
00000000 00000000 00000000 00001010 int 10

​类型转换的方向

  • 低------------------------------------------------------>高
  • byte —> short,char—>int —>long—>float —>double

2.强制类型转换(左<右)

int n=270;
System.out.println("n="+n);
byte b = (byte) n;
System.out.println("b="+b);

(一)Java基础语法

00000000 00000000 00000001 00001110  int 270
00001110 byte 14