Java SE 入门--第一章:基础语法

一、常量与进制

1. 常量

概念:用关键字final修饰的变量
特性:一旦被赋值则不能更改;名称一般全大写
Java中的常量位于JVM(java虚拟机)–方法区–常量池

2. 整数进制

2.1 整数的表示方法

进制表示方法
八进制0-7 ,满8进1. 用0开头表示
十进制0-9 ,满10进1.
十六进制0-9,A-F,满16进1. 用0x开头表示

二进制不是整数常量的表现形式,只是这些整数常量在计算机中的表现

2.2 进制转换

N进制转十进制:乘以N的幂数(二进制101转换为十进制,1x22+0x21+1x20=5)

十进制转二进制:除以二倒取余数(6/2=3余0,3/2=1余1,6的二进制表示为110)

十进制转八进制:先转为二进制,三个二进制一组(不够三个的可以在二进制前补零)表示一个八进制的数值,从前到后依次写出即为所求

十进制转十六进制:先转为二进制,四个二进制一组(不够四个的可以在二进制前补零)表示一个十六进制的数值,从前到后依次写出即为所求

负数的二进制表现形式:对应的整数二进制取反加1

二、变量

变量的概念:
• 内存中的一个存储区域
• 该区域有自己的名称(变量名)和类型(数据类型)
• 该区域的数据可以在同一类型范围内不断变化

为什么要定义变量:
• 用来不断的存放同一类型的常量,并可以重复使用

使用变量注意:
• 变量的作用范围(本对{ }之间有效)
• 初始化值
• 变量的名称要有意义

定义变量的格式:
第一种:
•数据类型 变量名 = 初始化值;
第二种:
•数据类型 变量名;
•变量名 = 值; (这一步一定要有,否则编译不通过)

1. 基本数据类型

Java中基本数据类型有八种:

byte, short, int, long, float, double, char, boolean

整数默认为int,小数默认为double

1.1 整型

表示整数,默认值均为 0

数据类型字节数
byte1
short2
int4
long8

位: bit, 计算机中最小储存单元,表示一个二进制位

字节: 1字节= 8bit

byte 的范围为[-128, 127]

1.2 浮点型

表示浮点数,即指数形式的小数,默认值为 0.0

数据类型字节数
float4
long8

float精确度为小数点后6-7位
double精确度为小数点后15位

1.3 字符型

表示一个字符,用单引号来标识,默认值为\u0000
char ch = 'A';
根据编码方式的不同,一个字符所占的字节数也不同
Java中字符使用Unicode编码,一个字符占据两个字节

但具体编码方式还需具体分析
ASCII编码: 一个英文字符占1个字节,一个中文字符占2个字节

UTF-8编码: 一个英文字符占1个字节,一个中文字符占3个字节

GBK编码: 一个英文字符占1个字节,一个中文字符占2个字节

1.4 布尔型

表示“真”或“假”,默认值为flase
boolean型falsetrue表示

boolean b1 = false;
boolean b2 = true;

1.5 基本数据类型的封装类

基本数据类型封装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

封装类为各个基本数据类型提供一些数据的操作方法,可以直接使用
如:

//String转换为int
String str = "4";
int a = Integer.parseInt(str);//a=4

1.6 基本数据类型的相互转换

自动数据类型转换
数据类型转换图
实线代表转换时无精度损失,虚线代表转换时有精度损失

表达式中的数据类型自动提升
所有的byte型、short型和char型的值将被提升到int型
如果一个操作数是long型,计算结果就是long型
如果一个操作数是float型,计算结果就是float型
如果一个操作数是double型,计算结果就是ldouble型

数据类型强制转换

double a = 1.222;
int b = (int)a;//b = 1

2.引用数据类型

引用数据类型是一个指向某个地址的变量,默认值为null

Java中引用数据类型有三种:

数组、 类、 接口

//创建一个长度为5的数组,数组内储存的都是int类型的数据
int[] arr = new int[5];

//创建一个Object类型的对象
Object o = new Object();

//定义一个Interface类型的接口引用数据类型
Interface inf ;

3.运算符

3.1 算数运算符

算数运算符
算术运算符的注意问题
• 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模
数是负数就另当别论
• 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时
,只保留整数部分而舍弃小数部分。例如:int x=3510;x=x/1000*1000; x=3000
• “+”除字符串相加功能外,还能把非字符串转换成字符串

3.2 赋值运算符

= , +=, -=,*=, /=, %=

int a,b,c;
a = b = c = 3;//java支持连续赋值
int a = 3;
a += 5;//a = a + 5 = 8

但是要注意的是表达式中可能会出现的数据类型转换,如

byte a = 127;
byte b = 1;

a = a + 1;//Error,等号左边的a为byte类型,等号右边a+1,Java在进行精度小于int的运算时自动提升为int型,int不能自动转换为byte

a = a + b;//Error,原因同上

a += 1;//a = -128,java先使用int型计算a+1,然后将其强制转换为byte
a += b;//a = -128,同上

3.3 比较运算符

比较运算符
• 比较运算符的结果都是boolean型,也就是要么是true ,要么是false
• 比较运算符“==”,赋值运算符“=”

3.4逻辑运算符

逻辑运算符
• 逻辑运算符用于连接布尔型表达式,在Java中 3<x<6应该写成x>3 & x<6。
• “&”和“&&”的区别:单 &时,左边无论真假,右边都进行运算;双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
• 异或( ^ )与或( | )的不同之处是:当异或左右都为true时,结果为false;或反之。

3.5 位运算符

位运算符直接对二进制进行运算
位运算符
在这里插入图片描述

3.6 三元运算符

格式
• (条件表达式 )?表达式1:表达式2;
• 如果条件为true,运算后的结果是表达式1;
• 如果条件为false,运算后的结果是表达式2;

int x = 3;
int y = 4;
int z;
z = (x>y)?x:y;//z为x,y中较大的数

3.7 枚举类型

enum name
{1,值2, ...
}

三、控制流程

1.判断结构

1.1 if语句

if语句有三种格式

//第一种格式
if(条件表达式)
{
	执行语句;
}
//第二种格式
if(条件表达式)
{
	执行语句;
}
else
{
	执行语句;
}
//第三种格式
if(条件表达式)
{
	执行语句;
}
else if
{
	执行语句;
}
......//可有多个else if
else
{
	执行语句;
}

• 条件表达式都是单条语句,条件表达式的结果只能为真或假
• 第二种格式与三元表达式的区别:三元运算符运算完成后会得到一个值,而第二种格式不会

2.循环结构

2.1 for语句

for(初始化表达式; 循环条件表达式; 循环后的操作表达式)
{
	执行语句;
}

• for循环中几个语句的运行顺序:首先只读一次初始化表达式–判断循环条件,为真则执行循环语句–执行循环后的操作表达式–判断循环条件,为真则执行循环语句…直到循环条件表达式为假则循环结束
• while循环与for循环可以互换,区别在于for为了循环而定义的变量在for循环结束后就在内存中释放,while为循环而定义的变量在循环结束后仍然可以继续使用

2.2 while语句

while(条件表达式)
{
	循环语句;
}

2.3 do while语句

do while(条件表达式)
{
	循环语句;
}

do while 与while 的区别:无论条件表达式是否为真,do while 语句总是会执行一次循环语句,而while只有在条件表达式为真的情况下才会执行循环语句

3.选择结构

3.1 switch语句

switch 语句将从与表达式所匹配的case标签处开始执行,直到执行到break或执行到switch的结束处后跳出结构体。如果没有匹配的case标签,而有default语句,那么执行default语句

switch(表达式)
{
	case 取值1:
	执行语句;
	break;

	case 取值2:
	执行语句;
	break;
	
	...
	
	default:
	执行语句;
	break;
}

• case的标签:char, byte, short, int的常量表达式;枚举常量;java SE 7后的字符串

编程中避免使用此种结构体

4.中断控制流程语句

4.1 break语句

break语句用于循环结构和选择结构中,表示退出此结构体
• break语句有一种带标签的形式,用来跳出多重循环

4.2 continue语句

用于结束本次循环,进行下一次循环

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值