JavaSE基础篇【1】
2022年6月1日
第一部分 Java语言基础
1.1 Java主类结构
Java语言是面向对象的程序设计语言,Java程序的基本组成单元是类,类体中又包括属性与方法。
package Number;
public class First{
static String s1="你好";
public static void main(String[] args){
String s2="Java";
System.out.println(s1);
System.out,println(s2);
}
}
- 注:文件名必须和Java的类名相同,如上述应为First.java。
①包声明 package Number
②声明成员变量和局部变量,s1 是成员变量,s2 是局部变量
③编写主方法 main
④导入API类库 import
1.2 基本数据类型
Java的数据类型主要有以下三大类:
- 数值型:包括整数类型(byte,short,int,long)和浮点类型(float,double)
- 字符型
- 布尔型
- 整数类型
①十进制:除了数字0,不能以0作为其他十进制数的开头
②八进制:必须以0开头,如0123(十进制83),-0123(十进制-83)
③十六进制:必须以0x或者0X开头,0x25(十进制37),0xb01e(十进制:45086)
byte型:8位存储空间,取值范围为-128~127
short型:16位存储空间,取值范围为-32768~32767
int型:32位存储空间,取值范围为-2147483648~22147483647
long型:64位存储空间,取值范围长度为2的64次方
package Number;
public class Number {
public static void main(String[] args){
byte mybyte=124;
short myshort=32654;
int myint=45784612;
long mylong=46789451;
long result=mybyte+myshort+myint+mylong;
System.out.println("结果为:"+result);
}
}
- 浮点类型
有float型和double型,内存空间分别是2的32次方和64次方 - 字符类型
- char型
char word='d';
char d1='\u2605';
System.out.println("d在unicode表中的顺序是:"+(int)word);
System.out.println("unicode表中的第23045位是:"+(char)p);
- 转义字符
\ddd:1~3位八进制数据所表示的字符,如\123
\uxxxx:4为十六进制数据所表示的字符,如\u0052
':单引号字符
\:反斜杠字符
\t:垂直制表符,将光标移到下一个制表符的位置
\r:回车
\n:换行
\b:退格
\f:换页
- 布尔类型
布尔类型也就是逻辑类型,通过关键词 boolean 来 定义布尔类型变量,只有 true 和 false 两个值,分别代表真和假。
boolean b=true;
boolean b1,b2;
1.3 变量与常量
- 标识符和关键字
- 标识符:一个名字,可以用来表示类名、变量名、方法名、数组名、文件名的有效字符序列。标识符不能是Java中保留的关键字。
- 关键字:Java中已经被赋予一些特定意义的单词。
- 声明变量和常量
//声明变量
int age;
char char1='r';
//声明常量:final 数据类型 常量名称[=值]
final double PI=3.1415926;
final boolean BOOL=true;
- 变量的有效范围
- 成员变量:在整个类中都有效
- 局部变量:只在当前代码块中有效
var:可以多次赋值
val:只可以赋值一次
1.4 运算符
- 赋值运算符:=,如 " a=1 "
- 算术运算符:
- +:加
- -:减
- *:乘
- /:除
- %:取余数
float b1=45.56f;
int b2=152;
System.out.println("和为:"+(b1+b2));
System.out.println("差为:"+(b1-b2));
System.out.println("积为:"+(b1*b2));
System.out.println("商为:"+(b1/b2));
- 自增和自减运算符
- ++a(–a):在使用变量a之前,先使a的值加(减)1
- a++(a–):在使用变量a之后,使a的值加(减)1
- 比较运算符(输出为逻辑变量)
“>”:比较左方是否大于右方
“<”:比较左方是否小于右方
“==”:比较左方是否等于右方
“>=”:比较左方是否大于等于右方
“<=”:比较左方是否小于等于右方
“!=”:比较左方是否不等于右方 - 逻辑运算符号
- 逻辑与:&&和&,如 op1&&op2 ,结合方向为从左到右
- 逻辑或:||,如 op1||op2 ,结合方向为从左到右
- 逻辑非:!,如 !op,结合方向为从右到左
- 位运算符
①“按位与”运算:&,如果两个变量对应位都为1,结果才为1
②“按位或”运算:|,如果两个变量对应位都0,结果才为0
③“按位取反”运算:~,变量对应位的0和1修改
④“按位异或”运算:^,对应位相同时位0,不同时为1
⑤移位操作
“<<”:左移
“>>”:右移
“>>>”:无符号右移,无论最高位时0还是1,左侧被移空的高位都填入0 - 三元运算符
格式:条件值?值1:值2
如:boolean b=20<45?true:false;
三元运算符等价于if…else语句 - 运算符优先级
增量和减量->算术->比较->逻辑->赋值
1.5 数据类型转换
- 隐式类型转换
低级类型向高级类型的转换。
优先级:byte<short<int<long<float<double
package Number;
public class Conver {
public static void main(String[] args) {
byte mybyte=127;
int myint=150;
float myfloat=457.12f;
double mydouble=45.46546;
char mychar=10;
String name="huwei";
int a=(int)mydouble;
int b=(int)mybyte;
int c=(int)mydouble;
System.out.println("byte and float:"+(mybyte+myfloat));
System.out.println("byte and int:"+mybyte*myint);
System.out.println("byte and char:"+mybyte/mychar);
System.out.println("double and char:"+(mydouble+mychar));
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(name);
// 单行注释
/*
多行注释
*/
}
- 显式类型转换
高级类型向低级类型的转换。
语法格式为:(类型名)要转换的值
如:
int x=(int)45.67;
1.6 代码注释与编码规范
- 代码注释
①单行注释://注释内容
②多行注释:/* 注释内容*/
③文档注释:/** 注释内容*/ - 编码规范
第二部分 Java流程控制
2.1 复合语句
复合语句以开括号"{“开始,闭括号”}"结束
2.2 条件语句
- if条件语句
①简单的if条件语句
if(布尔表达式){
语句序列
}
②if…else语句
if(布尔表达式){
若干语句
}
else{
若干语句
}
③if…else if多分支语句
if(布尔表达式){
若干语句
}
else if(布尔表达式){
若干语句
}
- switch多分支语句
是一个多选一的语句
switch(表达式){
case 常量值1;
语句块1
[break;]
…
case 常量值n;
语句块n
[break;]
default:
语句块n+1;
[break;]
}
package Number;
public class Compound {
public static void main(String[] args) {
int x=20;
int c=45;
int d=12;
{
int y=40;
System.out.println(y);
int z=245;
boolean b;
{
b=y>z;
System.out.println(b);
}
}
String word="Hello Java";
System.out.println(word);
if(c>d) {
System.out.println("变量c大于变量d");
}
if(c<d) {
System.out.println("变量c小于变量d");
}//比较变量c和变量d的值大小
if(c==d) {
System.out.println("你赢了!");
}
else {
System.out.println("你输了!");
}
if(x>30) {
System.out.println("x>30");
}else if(x>10) {
System.out.println("x>10 and x<30");
}else if(x>0) {
System.out.println("x>0 and x<10");
}else {
System.out.println("x<0");
}
int week=2;
switch(week) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
default:
System.out.println("Soory!I don't know.");
}
int k=1;
int sum=0;
while(k<=10) {
sum=sum+k;
k++;
}
System.out.println("sum="+sum);
{
int p=100;
do {
System.out.println("ok!");
p--;
}while(p==10);
}
}
}
2.3 循环语句
- while循环语句
while语句也称为条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句。先判断条件是否成立,再进行循环。
while(条件表达式){
执行语句
}
- do…while循环语句
先循环,再判断条件是否成立。
do{
执行语句
}
while(条件表达式)
- for循环语句
一个for循环可以用来重复执行某条语句,直到某个条件得到满足。
for(表达式1;表达式2;表达式3)
{
语句序列
}
- foreach语句
foreach语句是for语句的特殊简化版本,在遍历数组等方面有很大便利。
for(元素变量x:遍历的对象obj){
引用了x的Java语句
}
2.4 循环控制
- break语句
使用break语句可以跳出switch结构。在循环结构中,同样也可用break语句跳出当前循环体,从而中断当前循环。
循环嵌套下,break语句将只会使程序流程跳出包含它的最内层的循环结构,即只跳出一层循环。
- 如果想让break跳出外层的循环,Java提供了’‘标签’‘功能,可以跳出’‘标签’'以及其以内的循环层,语法如下:
标签名:循环体{
break 标签名;
}
- continue语句
continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环。
- 在for循环中遇到continue语句后,首先执行循环的增量部分,然后再进行条件测试;
- 在while和do…while循环中遇到continue语句后,continue语句控制直接回到条件测试部分。
continue语句同样也有标签功能跳出指定的循环体,其语法和break类似。