Java SE知识点总结(2:Java基础语法)

目录

二:Java基础语法(基础篇)

1.数据类型

2.关键字

3.运算符

4.Java的输入输出

5.流程控制语句

6.数组(很重要)

7.小结


二:Java基础语法(基础篇)

1.数据类型

基本数据类型:共8个(在小化大的时候系统可以自动进行;反之,强制转换大化小会丢失字节,造成后果由程序员负责)

  1. byte:1个字节(字节流就是一个字节一个字节的读取)

  2. short:2个字节

  3. int:2个字节

  4. long:8个字节

  5. float:4个字节(使用String.format( )或者printf可以保留小数点)

  6. double:8个字节(浮点型)

  7. char:1个字节(字符流是按照Unicode编码形式,两个字节两个字节的读取)

    1. 这里引出几种编码形式

    2. 最早的:ASCII码(1个字节编码1个汉字)

    3. 然后:因为发现中文太多,结果后来采用Unicode(2个字节编码1个汉字)

    4. 最后:还是不够用,使用UTF-8编码解决的汉字不够用的问题(3个字节编码1个汉字)

  8. boolean:4个字节—取值为true或者false(布尔类型)

引用数据类型:String,ArrayList,Scanner(其实就是某个类) Java为了引入自己的特点:创建了包装类,就是将基本数据类型封装成为类

  1. Integer——int

  2. Double——double

  3. Character——char

  4. 上面的包装类也会在Java中的JDK库中学习

  5. 新加的String字符串类,底层基于数组实现(关于字符串后面会有一大章重点学习)

(Ps:写几个常用的)

2.关键字

先总结一下重要的关键字:

  1. new(无法实例化abstract类和interface(抽象类和接口))

  2. class,interface(接口),package(包)

  3. extends(继承),implements(实现)

  4. final,abstract(抽象的),static(静态的)

  5. this,super

  6. public,private,protected,default(默认的)(这个在类设计进阶的时候在详细聊聊)

在聊一聊他们的作用

  1. final(最终的)

    1. 修饰类:类无法再被继承

    2. 修饰成员属性:该属性无法再被修改

    3. 修饰成员方法:无法被子类重写

  2. new(实例化对象;创建引用时)

    String str = new String();
    //这个new相当于实例化String类,创建了一个对象,并且是在堆区创建对象,栈区创建了str引用(指针)
    
    String str = "Hello World!";
    //这个是直接在栈区中的字符串常量池子中创建了字符串"Hello World!"
    //有一张图可以再复习一下
    
    String[] str = new String[];
    //这三个完全不一样,两个new的作用也不一样
    
    Object[] object = new Object[10];
    //虽然这个是接口,但是并没有实例化接口,这里接口并不是实例化的意思,而是为这个引用开辟了一块空间
  3. class,interface(abstract)

3.运算符

  1. +,-,*,/,%(easy,不过注意一下/和%,考试肯定经常考):二元运算符

  2. ++,--简写的时候使用:一元运算符

    i++;
    i = i + 1;
    //两者效果一样,前者更加简洁
    i++;
    ++i;
    //两者效果其实一样,但是编译过后形成的汇编语言其实不一样
    int n = 10, i = 1;
    n = ++i;//这个先加在赋值,所以n=12 i=2
    n = i++;//这个先赋值在相加,所以n=11 i=2

  3. <,==,!=等等:关系运算符,返回值为布尔类型

  4. ||,&&,==:与上面的结合起来使用;与第五点相比连用两个具有短路作用(可以节省cpu运算资源)

  5. |,&:也可以用于逻辑运算

  6. =:赋值运算符,优先级很低

  7. 三元运算符:写法更加简洁,可以与if,else条件判断相互替换(如果掌握的不熟,可以先用if,else)

  8. instanceof:java特有,用于判断一个对象是否是某一个类的实例,返回值为布尔类型

    Scanner scanner = new Scanner(System.in);
    System.out.println(scanner instanceof Scanner);
    //会输出true
    int max=a>b?a:b;
    //三元运算符,很简洁比较方便

4.Java的输入输出

  1. Java采用Stream流的形式管理输入输出

  2. 在学习阶段常常使用Scanner类,在控制台进行输入(已经掌握的很熟练了)

  3. 在实际情况上,会有多种数据源,Stream流采用的更加频繁

  4. 在IO流那一章会详细介绍java是如何管理输入输出的(下面是最基本的四个输入输出抽象类

    1. InputStream

    2. OutputStream

    3. Reader

    4. Writer

下面介绍一下Scanner:(毕竟考试和算法,使用的很多)

  1. 首先这个类需要导包:import java.uitl.Scanner;

  2. 然后,因为这个类中的方法并不是static的,因此需要实例化Scanner类

    Scanner scanner = new Scanner(System.in);

  3. 最后便可以使用了

Scanner类使用过程需要注意的几个点:

  1. nextLine()与next()方法不一样

  2. nextLine():读取一行,截断值为Enter——回车键

  3. next():读取一个字符串,截断值为space——空格

  4. Scanner类中并没有读取字符的功能:并没有nextChar()

  5. 如果要读取字符串,需要使用Character包装类(后面在JDK基础类库中详细介绍)

  6. 还有就是print(),println(),printf()之间的区别

5.流程控制语句

顺序结构语句

  1. 赋值语句:i +=i;

  2. 空语句:;(就是单独一个;)(*)

    for(;;){}
    //目前遇到的
    ​
    return;
    //不太清楚这个有什么用,这里的;和return

  3. 复合语句(*)

选择语句

  1. if,else,else if

    if(){   }
    else{   }
    //第一种结构
    ​
    ​
    if(){    }
    else if(){    }
    else{    }
    //第二种结构
    ​
    ​
    if(){    }
    if(){    }
    else(){     }    
    //第三种结构
    ​
    /**总结一下
     *else和default很像
     *如果前面的条件都不满足就执行这个代码块里面的内容
     *并且是可写可不写的
     */

  2. switch,case

    switch(str){
        case "1":break;
        case "2":break;
        default:
    }
    /**注意一下
     *java中的switch是可以支持字符串的
     *记得好像是在JDK 8 中提出的新特性
     *还有就是一定要记得使用break跳出switch语句
     */

循环语句

  1. for:这里在补一个增强for循环,java为了方便遍历数组(集合框架推出了这个,内置迭代器)

    int[] array = {1,2,3,4,5,6};
    for(int i:array){
        System.out.println(i+" ");
    }//增强for循环,也可以叫做foreach循环
    ​
    //下面补一个后面在集合框架要学的迭代器
    //(*)

  2. while:在不确定循环次数的时候经常使用,配合break;(其实for循环也可以实现:for(;;))

    eg:(1)循环输入时,当读取到-1时为止(2)不知道循环结束的具体次数时候

  3. do—while(几乎很少用到……)

转移语句

  1. break:中断整个循环(很重要,常常与选择语句和循环语句结合使用,下同)

  2. continue:跳过某一次循环

  3. return:这个不太会(回收伏笔了)(*)

6.数组(很重要)

数组的创建

int a[];
int[] a;
//声明数组,a为引用数据类型(指针)
​
a = new int[10];
//分配空间,容量为10,分配空间后每个值默认为0,boolean形为false 
​
a.length;
//length为数组的成员属性,表示长度

数组的遍历

//两种
//1.for循环(......)
//2.增强for循环,foreach循环
for(int i ; a){
    Syste,.out.println(i);
}

数组的底层原理:其实就是顺序表(在后面集合框架会详细介绍)

二维数组

int[][] a;
int a[][];
//声明数组,创建引用
​
a = new int[3][4];
a = new int[3][];
//java允许创建不规则数组,允许每一行长度不同
​
int a[][]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int x[][]={{10,20,30,45},
{15,25,35,50},
{19,28,38,49}};
//可以直接初始化
​
a.length;
//表示数组的行数
a[i].length;
//表示数组第i行的元素的个数

7.小结

  1. 掌握基本数据类型和操作运算

  2. 掌握顺序结构、选择结构和循环结构,具备运用其解决实际问题的能力

  3. 理解一维数组和二维数组定义形式,掌握ForEach遍历循环

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值