Coder Social home page Coder Social logo

basic-code's People

Contributors

lianyuer avatar

Watchers

 avatar

basic-code's Issues

switch语句

switch(表达式){
        case 值1:
            语句体1;
            break;
        case 值2:
            语句体2;
            break;
        ...
        default:
            语句体n+1;
            break;
}

执行流程:

  1. 首先执行表达式的值。
  2. 依次和case后面的值进行比较,如果有对应的值,
    就会执行相应的语句,在执行的过程中,遇到break就会结束。
  3. 如果所有的case后界面的值和表达式的值都不匹配,
    就会执行default里面的语句体。然后结束整个switch语句。

格式说明:

  1. 表达式:(将要匹配的值)取值为byte、short、int、char。
    JDK5以后可以是枚举,JDK7以后可以是String。
  2. case:后面跟的是要和表达式进行比较的值(被匹配的值)。
  3. break:表示中断,结束的意思,用来结束switch语句。
  4. default:表示所有情况都不匹配的时候,就执行该处的内容,
    和if语句的else相似。
  5. case后面的值只能是字面量,不能是变量。
  6. case给出的值不允许重复。

其他知识点:
· 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

格式:

初始化语句;
do{
    循环体语句;
    条件控制语句;
}while(条件判断语句);

for和while可以理解成:去饭店吃饭,先看兜里有没有钱,有就吃饭,没有就走。
do...while可以理解成:去饭店吃饭,先吃饭再看兜里有没有钱,有就继续吃饭,没有就走。

四种逻辑运算符

逻辑与 & 两边都为真,结果才为真
逻辑或 | 两边都为假,结果才为假
逻辑异或 ^ 相同为False,不同为True
逻辑非 ! 取反

continue和break

  • continue:跳过本次循环,继续执行下次循环。
  • break:结束整个循环。
    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码表查询到对应的数字计算

for和while的对比

相同点: 运行规则一样
区别:

  • for循环中,知道循环次数或者循环范围
  • while循环中,不知道循环次数和循环范围,只知道循环的结束条件
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(关系表达式){
      语句体;
}

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循环

格式:

初始化语句;
while(条件判断语句){
    循环体语句;
    条件控制语句;
}

JRE 和 JDK

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循环

格式:

for(int i = 1 ; i <= 10 ; i++){
    System.out.println("HelloWorld");
}

执行流程:

  1. 执行初始化语句
  2. 执行条件判断语句,看起结果是true还是false
    如果是false,循环结束
    如果是true,执行循环体语句
  3. 执行条件控制语句
  4. 回到2.继续执行条件判断语句

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.