lianyuer / basic-code Goto Github PK
View Code? Open in Web Editor NEWJava基础学习
Java基础学习
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程:
格式说明:
其他知识点:
· default的位置和省略:
default不一定写在最下面,我们可以写在任意位置,只不过习惯写在最下面
default可以省略,但不建议省略
· case穿透:
首先会拿着小括号中表达式的值跟下面每一个case进行匹配。
如果匹配上了,就会执行对应的语句,如果此时发现了break,则结束整个switch语句。
如果没有发现break,则程序会继续执行下一个case的语句体,一直遇到break或者右大括号为止。
使用场景:如果多个case的语句体重复了,则我们考虑利用case穿透去简化代码
· switch新特性(JDK12):
①
int number = 1;
switch(number){
case 1 ->{
System.out.println("一");
}
case 2 ->{
System.out.println("二");
}
case 3 ->{
System.out.println("三");
}
default ->{
System.out.println("没有这个选项");
}
}
②(只有一条执行语句时,大括号可不写)
int number = 1;
switch(number){
case 1 ->System.out.println("一");
case 2 ->System.out.println("二");
case 3 ->System.out.println("三");
default ->System.out.println("没有这个选项");
}
· switch和if第三种格式各自的使用场景:
if的第三种使用格式:一般用于对范围的判断。
switch:把有限个数据一一列举出来,让我们任选其一
格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
for和while可以理解成:去饭店吃饭,先看兜里有没有钱,有就吃饭,没有就走。
do...while可以理解成:去饭店吃饭,先吃饭再看兜里有没有钱,有就继续吃饭,没有就走。
a++ 先用再加
++a 先加后用
逻辑与 & 两边都为真,结果才为真
逻辑或 | 两边都为假,结果才为假
逻辑异或 ^ 相同为False,不同为True
逻辑非 ! 取反
100.fori
产生 1-100 for循环快捷方式字符串的“+”操作:
· 当 “+” 操作中出现字符串时,这个 “+” 时字符串连接符,而不是算术运算符了。
会将前后的数据进行拼接,并产生新的字符串。
eg:"123" + 123 ——> "123123"
· 连续进行 “+” 操作时,从左到右逐个执行。
eg:1 + 99 + "浙江" ——> "100年浙江"
练习:
System.out.println(3.7 + "abc"); // "3.7abc"
System.out.println("abc" + true); // "abctrue"
System.out.println('中' + "abc" + true); // "中abctrue"
System.out.println("我的年龄是" +age + "岁");
System.out.println("我的年龄是" +"age" + "岁");
System.out.println("1 + 2 + "abc" + 2 + 1); //"3abc21"
字符的“+”操作:
· 字符 + 字符(或数字)时,会把字符通过ASCII码表查询到对应的数字计算
相同点: 运行规则一样
区别:
int i = 0;
for( ; i < 4 ; i++){
System.out.println(i);
}
int i = 0;
while(i < 4){
i++;
System.out.println(i);
}
步骤一:导包---import java.util.Scanner;
步骤二:创建对象---表示我要开始用Scanner这个类了
Scanner sc = new Scanner(System.in);
步骤三:接收数据---真正开始干活了
int i = sc.nextInt();
格式:关系表达式? 表达式1: 表达式2;
计算规则: · 首先计算关系表达式的值
· 如果值为 true, 表达式1的值就是运算结果
· 如果值为 false, 表达式2的值就是运算结果
eg:
int max = a > b ? a : b;
System.out.println(a > b ? a : b);
注意:整个三元表达式的运算结果一定要被使用(赋值给变量或直接打印)
隐式转换(自动类型提升):
· 取值范围:byte < short < int < long < float < double
· 转换时机:两个不同数据类型的变量进行运算的时候,自动转换成相同数据类型进行运算
规则一:
· 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
规则二:
· byte、short、char三种类型的数据在运算的时候,都会先提升为int,再进行运算
强制转换:
· 范围大的数转换成范围小的数
· 格式:目标数据类型 变量名 = (目标数据类型) 被强制的数据;
eg:
int a = 300;
byte = (byte) a;
①
if(关系表达式){
语句体;
}
②
if(关系表达式){
语句体1;
}else{
语句体2;
}
③
if(关系表达式1){
语句体1;
}else if (关系表达式2){
语句体2;
}
...
else{
语句体 n+1;
}
小结:
· Java语言的数据类型分为:基本数据类型,引用数据类型
· 基本数据类型的四类八种
· byte的取值范围
· 整数和小数取值范围大小关系:
double > float >long > int > short > byte
· long类型变量:需要加入L标识(大小写都可)
· float类型变量:需要加入F标识(大小写都可)
&& 短路与 结果和 & 相同,但是具有短路效果
|| 短路或 结果和 | 相同,但是具有短路效果
注意:
· & |,无论左边 true false,右边都要执行。
· && ||,左边的表达式能确定最终的结果,右边不执行
&&:左边为false,右边不管真假,整个表达式结果一定时false
||:左边为true,右边不管真假,整个表达式结果一定时true
· 最常用的逻辑运算符:&& || !
原码:
十进制数据的二进制表现形式,最左边是符号位,0为正,1为负。
利用原码对正数进行计算是不会有问题的。
但是如果是负数计算,结果就出错,实际运算的结果,跟我们预期的结果是相反的。
反码:为了解决原码不能计算负数的问题而出现的。
计算规则:正数的反码不变,负数的反码在原码的基础上,符号位不变,数值取反,0变1,1变0.
反码弊端:负数运算的时候,如果结果不跨0,是没有问题的,但如果结果跨0,跟实际结果会有1的偏差
补码:为了解决负数计算时跨0的问题而出现的。
计算规则:整数的补码不变,负数的补码在反码的基础上+1.
另外补码还能多记录一个特殊的值-128,该数据在1个字节下,没有原码和反码。
注意点:计算机中的存储和计算都是以补码形式进行的。
基本数据类型:
byte类型 1个字节
short类型 2个字节
int类型 4个字节
long类型 8个字节
隐式转换:补零
强制转换:去掉比特位
其他运算符:
& 逻辑与 0为false 1为true(按位)
| 逻辑或 0为false 1为true (按位)
<< 左移 向左移动,低位补0
>> 右移 向右移动,高位补0或1(看原来高位时0还是1)
>>> 无符号右移 向右移动,高位补0
命名规则----硬性要求
·由数字、字母、下划线_和美元符组成
·不能以数字开头
·不能是关键字
·区分大小写
命名方法:
1.小驼峰命名法:方法、变量
规范1:标识符是一个单词的时候,全部小写。eg:name
规范2:标识符由多个单词组成的时候,第一个单词首字母小写,
其他单词首字母大写。eg:firstName
2.大驼峰命名法:类名
规范1:标识符是一个单词的时候,首字母大写。eg:Student
规范2:标识符由多个单词组成的时候,每个单词首字母大写。eg:GoodStudent
for( ; ; ){
System.out.println("学习");
}
最常用:
while(true){
System.out.println("学习");
}
do{
System.out.println("学习");
} while(true);
=
拓展赋值运算符底层隐含强制转换: byte s = 1;
+= -= *= /= %= s += 1
System.out.println(s);
关系运算符:== != > >= < <=
格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
1.JDK是什么,由什么组成
JDK是Java开发工具包
· JVM虚拟机:java程序运行的地方
· 核心类库:Java已经写好的东西,可以直接用
· 开发工具:javac、java、jdb、jhat...
2.JRE是什么,由什么组成
JRE是java运行环境
JVM、核心类库、运行工具
3.JDK、JRE、JVM三者的包含关系
·JDK包含了JRE
·JRE包含了JVM
1.什么是字面量
数据在程序中的书写格式
2.Java中有字面量的分类
整数、小数
字符串、字符
布尔、空
3.一些特殊字面量的书写
制表符:\t
在打印的时候,把前面字符串的长度补齐到8,或者8的整数倍。最少补1个空格,最多补8个空格
(只和前面的字符串有关系)
空类型:null
打印的时候不能直接打,要以字面量(字符串)的形式出现
1.定义格式: 数据类型 变量名 = 数据值;
2.基本用法:
①.定义变量,再直接输出
②.变量参与运算
③.修改变量记录的值
3.使用场景:
重复使用某个值
某个数据经常发生改变
注意事项:
·只能存一个值
·变量名不允许重复定义
·一条语句可以定义多个变量
·变量在使用前一定要进行赋值
·变量的作用域范围...
格式:
for(int i = 1 ; i <= 10 ; i++){
System.out.println("HelloWorld");
}
执行流程:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.