基本语法
标识符
1.概念
在java中可以自定义的名称
2.组成范围
1.各国常见的文字
2.数字(0~9)
3.特殊符号(_
(
慎
用
内
部
默
认
标
识
符
里
使
用
(慎用 内部默认标识符里使用
(慎用内部默认标识符里使用))
3. 命名规则
1.不能以数字开头
2.不能是关键字(Mycalss)
当在组成范围之内并且遵守命名规则----合法标识符
4.命名规范
1.类名/接口 ----XxxYyyZzz
2.方法名/变量名----xxxYyyZzz
3.包名(包代表文件夹来区分同类名)
单级:xxx cn
多级:xxx.yyy.zzz cn.tedu.day01(不是标识符)
4.常量名 ----XXX_YYY_ZZZ
注释
在Java代码中用于解释和说明的文字
格式:
//注释内容----单行注释(可以嵌套单行注释)
/注释内容/–多行注释(可以嵌套单行注释不可以嵌套多行注释)
/*注释内容/–文档注释(通过javadoc命令把注释内容生成文档)
常量
1.概念
在程序执行的过程中值不发生改变的量
2.分类:
字面值常量
整数常量 —1 123 5688
小数常量 ----- 3.2
字符常量------ ‘a’ ‘5’
字符串常量---- “weyurgve”
布尔常量----true ,false
空常量 ---- null
自定义常量
3.整数的不同表现形式
二进制
由0和1组成 0b1010 以0b开头的
八进制
0~7组成 0156 以0开头
十进制
0~9组成 默认
十六进制
由0~9 ,a-f (不区分大小写) 以0x开头
进制—进位的一种方式
4.进制之间的转换
数据都是通过底层计算机硬件状态来表示的
通过上述的八个状态来表示数据就能表示更多的数据
为了更加方便和快捷的表示数据状态,通过0 和 1来表示状态
底层有
—二进制数据
基数 —X进制 ,基数就是X
位 —每一位上的数
规律(其他进制转十进制)
位乘以基数为底的权次幂之和
十进制转其他进制
规律:
除基取余,直到商为零,余数去反
任意之间的进制转换
1.先把X转换成十进制在装成Y进制
随着进制的增大,数据的表现形式越简单
2.拆分组合
5.有符号的数:
数据转成底的二进制数据补码形式来进行操作和储存
原码
符号位 数值位
5 0 0000101
-5 1 0000101
正数的符号位为0 负数的符号位为1
反码
符号位 数值位
5 0 0000101
-5 1 1111010
正数的反码和原码保持一致 ,负数的反码是在原码的基础上符号位不变,其他位按位取反、
补码
符号位 数值位
5 0 0000101
-5 1 1111011
正数的补码和反码以及原码都是一样的 ,负数的补码是在反码的基础上在末尾加1
变量
1概念
在程序执行过程中值可以改变的量、
可以存储单个数据的容器
控制变量变化的范围:
数据类型
区分变量:
变量名
保证变量操作之前给值:
初始化
变量定义格式:
数据类型 变量名=初始化;
2.数据类型
基本数据类型(四类八种)
整型 空间大小(字节) 范围
byte(字节) – 1 -27~2
7-1(-128~127)
short(短整型)- 2 -215~2
15-1(-32768~32767)
int(整型)-- 4 -231~2
31-1
long(长整型)-- 8 -263~2
63-1
浮点型
float 单精度 – 4 -e38~e
38
double 双精度-- 8 -e308~e
308
布尔型
boolean (布尔)-- 1 ture ,false
字符型
char(字符)-- 2 0~65535
编码----把文字转成底层数字的过程 转换规则—码表
ASCii(阿斯克码表 0~127 占一个字节)
ISO8859-1(西欧码表 0~255 占一个字节)
BIG5(繁体中文 占两个字节)
GB2312 (简体中文 占两个字节)
GBK(国标码 占两个字节)
Unicode编码体系(UTF-8(占三个字节),UTF-16(占两个字节))
所有的完整码表默认兼容西欧码表
转义字符
‘\t’ 制表符空格 ‘\r’ 回车 ‘\n’ 换行
引用数据类型
数组
类
接口
3.变量定义
/*
定义变量
注意:
1.当给定整数值时,默认这个整数类型是int
2.当给定小数时,默认这个小数时double类型
3.变量定义可以分为声明和初始化两个过程
4.变量在哪定义就在哪使用
*/
class JavaDemo{
public static void main (String [] args ){
//定义变量
int i=1;
System.out.println(i);
//定义长整型变量
long l=23434566545L;//长整型数据
System.out.println(l);
//定义单精度
float f=0.12F;
System.out.println(f);//float类型数据
//定义双精度数据
double d=2.12;
System.out.println(d);
//定义字节类型数据
//当参与的数据都是常量时,编译会进行优化直接计算结果值、
//赋值给变量
byte b=128-1;
System.out.println(b);
//声明
short s;
//初始化
s=12;
System.out.println(s);
}
}
4.类型转换
/*
变量之间相互操作
类型转换
1,默认类型提升(从小到大)
a. byte ,short,char 类型无论做任何操作都会类型提升为int类型
b. 整型类型提升为浮点型可会丢失精度
c.byte---short ,char-int -long -float-double
2.强制类型转换
目标类型 名称=(目标类型) 操作数据;
/
class DataType{
public static void main (String[] args){
//定义变量
/byte a=3;
int b=4;
int c=a+b;
System.out.println©;/
///有类型提升
byte b=3;
short s=b;
*/
//检测到给定的字符值 会把字符转成对应的编码值
//赋值给short变量, 如果编码值大于short变量的范围就会报错
/short s=‘达’;/
//会把编码值转成对应的字符赋值给char变量
/char c=48;//'0’的编码值为48
System.out.println(s);
System.out.println©/;
//没有类型提升
//除了char其他的数值类型都有负数范围不能保证负数的给值,所有就认为赋予任何值都会报错
/short s=10;
char c=s;/
//
/*char c ='a';
int i=c;
System.out.println(i);
*/
//有类型提升
/*int i=1;
long l=i;*/
//有类型提升
/*long l=2345654654655L;
float f=1;
System.out.println(f);*/
/*byte b1=4;
byte b2=6;
//强转为byte类型
byte b3=(byte)(b1+b2);
System.out.println(b3);*/
//浮点型数据强转成整型会取整
/*float f =2.9999955F;
int i= (int)f;
System.out.println(i);
*/
//
/*byte b=(byte)128;
System.out.println(b);*/
}
}
00000000 00000000 00000000 10000000 int 128补码10000000 byte 补码 负数 11111111 byte 反码 10000000 byte 原码 -0代表类型最小值 就会把符号位带入数值位一起进行计算(符号位也代表数值位)