IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java SE知识点总结 -> 正文阅读

[Java知识库]Java SE知识点总结

目录

一:Java概述

1.Java的几个版本

2.JDK,JRE,JVM的区别

3.Java的发展历史

4.Java与C运行方式的对比

5.Java环境配置

6.Java开发软件的选择

7.Java开发软件的使用

8.Java程序类型

9.Java的三种注释

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

1.数据类型

2.关键字

3.运算符

4.Java的输入输出

5.流程控制语句

6.数组(很重要)

7.小结


一:Java概述

1.Java的几个版本

  • java SE:标准版(Java语言基础)

  • java EE:企业版(JavaWeb:号称13大相关技术)

  • java ME:微型版(基本上被安卓SDK开发包代替)

2.JDK,JRE,JVM的区别

  • JDK:java集成开发环境(里面含有JRE包)

  • JRE: java程序运行环境

  • JVM:java虚拟机(面试较难的一个问题:JVM调优)

3.Java的发展历史

  • JDK 8 :很稳定的一个版本,大多数项目基于JDK 8 (2014年推出)

  • JDK 11:比较新的一个版本,较为稳定

  • JDK 17:目前最新的版本

PS:不同版本的JDK特性需要了解(尤其是JDK 8的版本特性)

4.Java与C运行方式的对比

(1)java:

(2)C:

5.Java环境配置

???????

6.Java开发软件的选择

  • Eclipse

  • IntelliJ IDEA(推荐)

7.Java开发软件的使用

  • 创建项目(以后还有Tomcat项目,或者Meven项目)

  • 编写

  • 编译(根据反射机制(类加载机制)后台自动编译)

  • 运行

  • 调试((debug)各种调试方法:F7(step over),F8(step into))(很重要)

  • 其他辅助操作(快捷键,插件,主题设置等等)

8.Java程序类型

  • Java应用程序(Java不擅长,一般采用C#(微软推出的一款语言)编写)

  • Java小程序

9.Java的三种注释

  • //

  • /**/

  • /** */

二: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遍历循环

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 17:34:35  更:2021-12-01 17:35:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:27:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码