JAVA基本语法组成(学习笔记2)

文章目录

一.关键字

二.标识符

1.概念

2.组成范围

3.命名规则

4.驼峰命名法(是在标识符合法的基础上)

5.见名知意

三、注释

四、常量

1.概念

2.分类

3.整数表示方法

4.进制的转换

5.有符号的数

6.变量

1.概念

2.数据类型

3.变量定义

4.类型转换



一.关键字

关键字---在java中具有特殊功能的单词

53个关键字,全部是小写 

二.标识符

1.概念

标识符---在java中可以自定义的名称

2.组成范围

1.各国常见文字 2.数字(0-9) 3.特殊符号(_、$(慎用---内部类使用))

3.命名规则

1.不能出现关键字 2.不能以数字开头

在组成范围内的内容且遵守命名规则的是符合java语法的标识符(合法)

4.驼峰命名法(是在标识符合法的基础上)

1.类名/接口名---XxxYyyZzz

2.方法名/变量名---xxxYyyZzz

3.包名(包是用来区分同名类) 单级---xxx cn   多级---xxx.yyy.zzz

5.见名知意

三、注释

注释---用于解释说明的文字(不参与程序的执行)

格式

单行注释---//注释内容 (可以嵌套单行注释)

多行注释---/*注释内容*/(可以嵌套单行注释不能嵌套多行注释)

文档注释---/**注释内容*/(可以通过javadoc命令生成解释说明的文档)

四、常量

1.概念

程序运行过程中不发生改变的值

2.分类

字面值常量

        整数常量 1000 1871

        小数常量 1.1 0.345

         字符串常量 "12" "askjhg"

         字符常量 '3' 'd'

         布尔常量 true false

          空常量 null

自定义常量(面向对象讲)

3.整数表示方法

二进制: 由0和1表示的数据   以0b开头的数据就是二进制数据    0b1000

八进制:由0~7表示数据      以0开头的数据就是八进制数据      01010

十进制 由0~9表示数据 默认

十六进制:由0~9 ,a~f(不区分大小写)表示数据 以0x开头的数据是十六进制数据

public class JavaDemo{
	public static void main(String[] args) {
		System.out.println(0b100);
		System.out.println(0100);
		System.out.println(100);
		System.out.println(0x100);
	}
}

4.进制的转换

(二进制转八进制可以三位一组,往前补0,二进制转十六进制可以四位一组,往前补0)

5.有符号的数

小数

       绝大部分的二进制小数是无限位数

对于十进制转二进制,大部分人都知道整数是除2取余,逆序排列 直到商为0时为止。但是小数呢,规则是和整数不一样的,规则如下:乘2取整,顺序排列 直到积中的小数部分为零

6.变量

1.概念

在程序运行过程中可以改变的值

可以存储单个数据的容器

2.数据类型

char c='中'; 文字转成底层数字---编码 文字转成底层数字的规则---码表 ASCII(阿斯克码表 占用一个字节)---ISO8859-1(西欧码表 占用一个字 节)---BIG5(繁体中文--占用2个字节)、GB2312(简体中文--占用2个字节)--- GBK(国标码 占用2个字节)---Unicode(编码体系 UTF-8(占用3个字 节)、UTF-16(占用2个字节)、UTF-32等等 )

所有的完整码表默认兼容西欧码表

char c='中';以u8进行编码,底层占用3个字节

char c='a';以u8进行编码,底层占用1个字节

转义字符

       '\t'---制表符空格 '\r'---回车 '\n'---换行

引用数据类型(类、接口、数组)

3.变量定义

定义变量 注意:

1.在java中初始化进行赋值时如果给定的是整数那么这个整数的类型默认是int类型

2.在整数后面加上L/l,此时整数类型指定为了long类型

3.在java中初始化进行赋值时如果给定的是小数那么这个小数的类型默认是 double类型

4.在整数后面加上F/f,此时整数类型指定为了float类型

5.变量的定义分为声明和初始化两个过程

6.变量在哪定义在哪使用 

class JavaDemo{
  public static void main(String[] args) {
  //定义int类型的变量
  int i=1;
  //给定的是变量名称但是操作的是变量值
  System.out.println(i);
  //定义long类型的变量
  long l=234628348734L;
  System.out.println(l);
  //定义float类型的变量
  float f=2.12F;
  //如果变量没有被操作,那么变量可以先不给值
  int i1;//声明
  i1=1;//初始化
  System.out.println(i1);
  }
}

4.类型转换

变量的操作

     类型转换

            类型提升(默认 从小到大)

                   byte-short、char-int-long-float-double

                   byte、short、char无论做任何操作都会类型提升为int类型

1.int变byte会报错

class Demo{
    public static void main(String[] args) {
    //定义变量
    byte a=1;
    int b=2;
    byte c=a+b;
    System.out.println(c);
}}

2.short与byte之间类型转换(有)

//说明byte和short之间有类型提升
byte b=1;
short s=b;

//把字符转成对应的编码值再赋值给short变量
//如果字符转成的编码值大于short的范围就不能正常赋值
short s='中';//97
//'0'---48 'A'---65 'a'---97
//把数字通过编码转成对应的字符再赋值给char变量
char c=99;

3.short与char之间(没有)

//没有类型提升,short类型的取值范围包含负数但是字符不能出现负数
short s=1;
char c=s;

4.int与char之间(有)

//int和char之间有类型提升
char c='1';
int i=c;

5.int与long之间(有)

//int和long之间有类型提升
int i=1;
long l=i;

6.float与long之间(有)

//float和long之间有类型提升
//从整型到浮点型进行类型提升时可能会出现精度丢失问题
long l=13456287343L;
float f=l;
System.out.println(f);

7.   float与double之间(有)

//float和double之间有类型提升
float f=1.1F;
double d=f;

8.byte,char,short底层的类型就是int类型

byte b1=1;
short s=2;
char c=3;
byte b2=2;

9.强制把int类型转成byte类型

byte b3=(byte)(b1+b2);

10.小数强制类型转成整数可能会出现舍弃

float f=4.99993476F;
int i=(int)f;
System.out.println(i);

11.byte与int之间需要注意的是

public class test {
	 public static void main(String[] args) {
		 int b=128;
		 byte bb=(byte)b;
		 //-128?
		 System.out.println(bb);
		 //当等号右边所有参与运算的数据都是常量
		 //那么在编译时期会进行优化直接计算结果再把结果赋值给变量
		 byte bbb=128-1;
		 System.out.println(bbb);
}
}

解释:00000000 00000000 00000000 10000000 int 128 补码

转成byte类型 10000000 byte 补码 负数

11111111 byte 反码 负数

10000000 byte 原码 负数--- -0 规定表示对应类型的最小值 是-128(特殊认为可以把最高位既当做符号位也当做数值位)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值