java基础大总结
Posted 生命是有光的
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础大总结相关的知识,希望对你有一定的参考价值。
0.写在前面
- 本笔记用作复习查看用,基础完整总结部分,基础不牢,地动山摇!
- :Java核心编程总结(一、继承)
:Java核心编程总结(二、抽象类与接口)
:Java核心编程总结(三、多态与内部类)
:Java核心编程总结(四、异常与线程)
:Java核心编程总结(五、线程池与死锁)
:Java核心编程总结(六、常用API与集合)
:Java核心编程总结(七、Stream流)
:Java核心编程总结(八、IO输入输出流)
:Java核心编程总结(九、File文件类)
1.环境配置
窗口键+r 输入cmd ,可以打开dos界面
1.DOS命令提示符
操作 | 说明 |
---|---|
盘符名称: | 盘符切换 E: 回车 |
dir | 查看当前路径下的内容 |
cd 目录 | 进入单级目录。 cd JAVA |
cd 目录1\\目录2\\ | 进入多级目录 |
cd\\ | 回退到盘符目录 |
cls | 清屏 |
exit | 退出命令提示符窗口 |
2.path环境变量的配置
1.win+E 打开此电脑
2.右键此电脑-属性-高级系统设置-高级-环境变量-找到系统变量下的Path-新建-名称改为 JAVA_HOME
,变量值为安装JAVA的路径,在bin路径之前
3.右键此电脑-属性-高级系统设置-高级-环境变量-找到系统变量下的Path-编辑-编辑文本-在变量值前面添加 %JAVA_HOME%\\bin
;
4.win+r
-> cmd
回车,输入javac
3.helloworld
public class HelloWorld {
public static void main(String[] args)
System.out.println("helloWorld");
}
}
4.Notepad++
2.基本语法
1.注释
单行注释
```java
//
```
多行注释
/* 注释信息 */
文档注释
/** 注释信息 **/
2.关键字
1.关键字的字母全部都是小写
2.常用的代码编辑器,针对关键字有特殊的颜色标记。
4.标识符
1.Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符
2.凡是自己可以起名字的地方都叫标识符
定义合法标识符规则:
1.由26个英文字母大小写,0-9 ,_或 $ 组成
2.数字不可以开头
3.不可以使用关键字和保留字,但能包含关键字和保留字
4.Java中严格区分大小写,长度无限制
5.标识符不能包含空格
5.命名规范
1.包名:多单词组成时所有字母都小写:xxxyyyzzz
2.类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
3.变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
4.常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
6.变量
1.整数类型
byte、short、int、long
- java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’
2.浮点类型
float、double
1.Java 的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F’
2.浮点型常量有两种表示形式:
3.字符型
1.char 型数据用来表示通常意义上“字符”(2字节)
2.字符型常量的三种表现形式:
①:字符常量是用单引号(‘ ’)括起来的单个字符,涵盖世界上所有 书面语的字符。例如:char c1 = ‘a’; char c2 = ‘中’; char c3 = ‘9’;
②:Java中还允许使用转义字符‘\\’来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\\n’; '\\n’表示换行符
③:直接使用 Unicode 值来表示字符型常量:‘\\uXXXX’。其中,XXXX代表一个十六进制整数。如:\\u000a 表示 \\n
3.char类型是可以进行运算的。因为它都对应有Unicode码
转义字符 | 说明 |
---|---|
\\b | 退格符 |
\\n | 换行符 |
\\r | 回车符 |
\\t | 制表符 |
\\ ’ ’ | 双引号 |
\\ ’ | 单引号 |
\\ \\ | 反斜线 |
4.布尔类型
1.boolean 类型适于逻辑运算,一般用于程序流程控制
2.boolean类型数据只允许取值true和false,无null
3.不可以0或非 0 的整数替代false和true,这点和C语言不同
5.字符串
1.值null可以赋值给任何引用类型(类、接口、数组)的变量,用以表示这个引用类型变量中保存的地址为空
2.String类属于引用类型,可用null赋值
3.String类是一个典型的不可变类,String对象创建出来就不可能被改变
6.变量的注意事项
1.变量名不允许重复定义
2.一条语句可以定义多个变量,但需要使用逗号进行分割
3.变量在使用之前一定要进行赋值
4.定义float 和long 变量的注意事项
5.变量的作用域范围
public class Demo {
/* 1.变量名不允许重复定义 */
publci static void main(String[] args){
int a = 10;
// int a = 20; 错误代码
a = 20;
System.out.println(a);
}
}
public class Demo {
/* 2.一条语句可以定义多个变量,但需要使用逗号进行分割*/
/* 一条语句:java当中使用分号作为一条语句的结束 */
public static void main(String[] args){
int a = 10,b = 20, c = 30;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
public class Demo {
/* 3.变量在使用之前一定要进行赋值 */
int a; //使用之前一定赋值
System.out.println(a);
}
public class Demo {
public statci void main(String[] args){
/* 4.定义float 和 long 变量的注意事项 */
/* 定义float类型变量的时候: 需要在数值后面加入F的标识,F可以大写也可以小写 */
/* 定义long类型变量的时候: 需要在数值后面加入L的标识,L尽量大写 */
float a = 12.3F;
long b = 1000L;
System.out.println(a);
System.out.println(b);
}
}
public class Demo {
public static void main(String[] args){
/* 变量的作用域范围: 只在它所在的大括号中有效 */
int a = 10;
System.out.println(a);
{
int b = 20;
// 当这个大括号中的代码执行完毕后,内部所[定义]的变量就会从内存中消失
System.out.println(b);
}
/* System.out.println(b); 编译错误*/
}
}
7.键盘录入
import java.util.Scanner;
public class DemoScanner {
/* 步骤1: 导包,需要写在class的上面
import java.util.Scanner;
步骤2: 创建对象
Scanner sc = new Scanner(System.in);
只有sc可以改变,其他属于固定格式
步骤3: 使用变量接收数据
int i = sc.nextInt();
只有 i 变量可以改变,其他属于固定格式
*/
public static void main(String[] args) {
// 步骤2: 创建对象
Scanner sc =new Scanner(System.in);
// 步骤3: 使用[变量]接收数据
int a = sc.nextInt();
System.out.println(a);
}
}
7.类型转换
1.隐式转换
将数据类型中,取值范围小的数据,给取值范围大的类型赋值,可以直接赋值
简单记:小的给大的,可以直接给
public class Demo {
public static void main(String[] args){
int a = 10; // int 4个字节
double b = a; // double 8个字节
System.out.println(b) // 10.0
}
}
2.强制转换
把一个表示数据范围大的数值或变量赋值给另一个表示数据范围小的变量
简单记忆:大的给小的,不能直接给,需要强转
int a = 10; // int 4个字节
byte b = (byte)a; // byte 1个字节
double num1 = 12.9;
int num2 = (int)num1;
System.out.println(num1); // 12
8.强制类型转换
1.自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(()),但可能造成精度降低或溢出,格外要注意。
2.通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型
9.运算符
1.算数运算符
符号 | 作用 | 说明 |
---|---|---|
+ | 加 | |
- | 减 | |
* | 乘 | |
/ | 除 | |
% | 取余 | 获取两个数据做除法的余数 |
2.字符的"+"操作
public class Demo {
public static void main(String[] args){
int a = 1;
char b = 'a';
// 当(byte short char int)在一起运算的时候,都会提升为int //
System.out.println(a + b);
}
}
/* 'a' -- 97
'A' -- 65
'o' -- 48
*/
3.字符串的"+"操作
pubic class Demo {
public static void main(String[] args) {
// 当 + 操作出现字符串时,这个 + 是[字符串连接符],而不是算数运算
// 字符串可以使用 + 号,跟[任意数据类型]拼接
System.out.println("ItHeiMa" + 666);
// ItHeiMa666
System.out.println(1 + 99 + "年");
// 100年
System.out.println("5 + 5" + 5 + 5 )
// 5 + 5 = 55
}
}
4.案例:数值拆分
import java.util.Scanner;
public class Demo{
public static void main(String[] args){
// 1.使用Scanner 键盘录入一个三位数
Scanner sc = new Scanner(System.in);
System.out..println("请输入一个三位数:");
int num = sc.nextInt();
// 2.个位的计算: 数值 % 10
int ge = num % 10;
// 3.十位的计算: 数值 / 10 % 10
int shi = num / 10 % 10;
// 4.百位的计算: 数值 / 100
int bai = num / 100;
System.out.println("整数"+num+"的个位为:"+ge);
System.out.println("整数"+num+"的十位为:"+shi);
System.out.println("整数"+num+"的百位为:"+bai);
}
}
公式总结:
个位: 数值 % 10
十位: 数值 / 10 % 10
百位: 数值 / 10 / 10 % 10
千位: 数值 / 10 / 10 / 10 % 10
5.自增自减运算符
符号 | 作用 | 说明 |
---|---|---|
++ | 自增 | 变量的值加1 |
– | 自减 | 变量的值减1 |
- ++ 和 --可以放在变量的后边,也可以放在变量的前面
- 单独使用的时候,++ 和 – 无论放在变量的前边和后边,结果是一样的
public class Demo {
public static void main(String[] args){
int a = 10;
// ++在前,先对该变量做自增或自减,然后再拿变量参与操作
int a = 10;
int b = ++a;
System.out.println(a); // 11
System.out.println(b); // 11
// ++在后 先将该变量原本的值,取出来参与操作,随后再自增
int aa = 10;
int bb = aa++;
System.out.println(aa); // 11
System.out.println(bb); // 10
int num = 123;
System.out.println(num++); // 123
}
}
4.赋值运算符
符号 | 作用 | 说明 |
---|---|---|
= | 赋值 | a = 10,将10赋值给变量a |
+= | 加后赋值 | a + = 10,将 a + b 的值给a |
- = | 减后赋值 | a - = b,将 a - b的值给a |
* = | 乘后赋值 | a * = b,将a × b 的值给a |
/ = | 除后赋值 | a / = b,将a ÷ b 的商给a |
% = | 取余后赋值 | a % = b,将a ÷b 的余数给a |
10.关系运算符
符号 | 说明 |
---|---|
= = | a = =b,判断a 和 b的值是否相等 |
! = | |
> | |
> = | |
< | |
< = |
11.逻辑运算符
& | 与 |
---|---|
| | 或 |
! | 非(取反) |
^ | 异或(相同为false,不同为true) |
public class Demo {
public static void main(String[] args){
System.out.println(true ^ true); // false
System.out.println(false ^ false); // false
System.out.println(true ^ false); // true
System.out.println(false ^ true); // true
/* 两边一样就是false,不一样即为true */
}
}
12.短路逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
&& | 短路与 | 作用与&相同,但是有短路效果 |
|| | 短路或 | 作用与|相同,但是有短路效果 |
public class Demo {
public static void main(String[] args){
/*
& 和 && 的区别:
& :无论符号左边是 true 还是 false,右边都要继续执行
&& :具有短路效果,符号左边为false的时候,右边就不执行
如果符号左边为true,右边要继续执行
*/
int x = 3;
int y = 4;
// false & true
System.out.println(++x > 4 & y-- < 5); //false
System.out.println("x=" + x); // 4
System.out.println("y=" + y); // 3
int x = 3;
int y = 4;
// false && true
System.out.println(++x > 4 & y-- < 5); //false
System.out.println("x=" + x); // 4
System.out.println("y=" + y); // 4
}
}
注意事项:
1.逻辑与 &:无论左边真假,右边都要执行
2.短路与 &&:如果左边为真,右边执行,如果左边为假,右边不执行
3.逻辑或 | : 无论左边真假,右边都要执行
4.短语或 ||:颗左边为假,右边执行,如果左边为真,右边不执行
13.三元运算符
关系表达式 ? 表达式1 : 表达式2
14.案例:三个和尚
public class Demo{
public static void main(String[] args){
// 1.定义三个变量用于保存和尚的身高
int a = 150;
int b = 210;
int c = 165;
// 2.用三元运算符,比较前两个变量,获取较大值
int temp = a > b ? a : b;
// 3.用三元运算符,比较较大值和第三个变量
int Max = temp > c ? temp : c;
System.out.println(Max);
}
}
10.流程控制语句
1.if
import java.util.Scanner;
public class Demo{
public static void main(String[] args){
Scanner score = new Scanner(System.in);
System.out.println("请输入您的考试成绩:");
int score = sc.nextInt();
if(score >= 0 && score <= 100){
if(score >= 95 && score <= 100){
System.out.println("666");
}else if(score >= 90 && score <= 94){
System.out.println("66");
}else if(score >= 80 && score <= 89){
System.out.println("6");
}else{
System.out.println("挨顿揍!");
}
}else{
System.out.println("您的成绩输入有误");
}
}
}
2.switch
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
default:
语句体3;
break;
}
1.案例:减肥计划
import java.util.Scanner;
public class Demo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("今天是周几:");
int week = sc.nextInt();
switch(week){
case 1:
System.out.println("");
break;
case 2:
System.out.println("");
break;
case 2:
System.out.println("");
break;
default:
System.out.println("您的输入有误");
break;
}
}
}
3.case穿透
如果switch语句中,case省略了break语句,就会开始case穿透
现象:当开始case穿透,后序的case就不会具有匹配效果,内部的语句都会执行
直到看到break,或者将整体switch语句执行完毕,才会结束
4.for
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
1.案例:输出数据
public class Demo{
public static void main(String[] args){
for(int i = 1; i <= 5;i++){
System.out.println(i);
}
for(int i = 5; i >= 1; i--)大数据必学Java基础(四十):面向对象三大特性之一继承(Inheritance)