华清远见-重庆中心-JAVA基础阶段知识点梳理

目录

Java简介 

Java分为三个体系

Java开发工具

Java开发环境配置

Java基础语法

基本语法

Java标识符

Java中的关键字

Java变量

什么是变量

变量的定义

变量的访问

Java中的基本数据类型

整形int

长整型long

double & float类型

char类型

 boolean类型

数据类型转换

Java运算符

算数运算符

关系运算符

逻辑运算符

赋值运算符和扩展赋值运算符

三目运算符

程序的结构

分支结构 

循环结构

for循环

while循环

 do.....while循环

死循环

 break & continue

循环的嵌套

Java数组

什么是数组

数组的使用

数组的交换位置

数组的排序

升序

降序

数组排序函数sort

数组复制

 数组扩容


Java简介 

1995年,Sun Microsystems 公司推出Java面向对象程序设计语言和Java平台。由James Gosling和同事们共同研发。 2009 Oracle公司 以超过 70 亿美元交易总值收购了Sun公司,Java也随之成为Oracle公司的产品。

Java分为三个体系

JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)

JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)

JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)

Java开发工具

Linux 系统、Mac OS 系统、Windows 95/98/2000/XP,WIN 7/8系统。

Java JDK

vscode编辑器或者其他编辑器。

IDE:Eclipse、 IntelliJ IDEA、NetBeans 等。

Java开发环境配置

打开环境变量的设置

 JAVA_HOME:jdk的安装路径

PATH:JDK的安装包中的bin目录 
path配置后,可以在命令窗口使用命令

测试环境变量的配置:
window + R,然后输入cmd,就可以打开命令窗口。然后输入java-version命令,查看安装的jdk版本

Java基础语法

基本语法

大小写敏感:Java对于字母大小写是有区分的,比如标识符Hello与hello是不同的。

类名:对于所有的类来说,类名应该首字母大写。如果是由若干个单词组成,那么每个单词的首字母应该大写,例如MyFirstClass。

方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。

源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。

主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。

Java标识符

Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
关于 Java 标识符,有以下几点需要注意:

  • 命名最好能 见名知意
  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始。
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合。
  • 关键字不能用作标识符。
  • 标识符是大小写敏感的。
  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary

Java中的关键字

Java变量

什么是变量

变量是指代在内存中的一块存储空间,用于存储程序运算过程中需要用到的数据。

变量的定义

  • 变量声明的语法规则:变量类型 变量名字。
  • 先声明变量,在第一次使用变量之前再对变量赋初值
  • 未经声明的变量不能使用 。
  • 如果多个变量的类型相同,可以在一条语句中声明,中间用逗号分隔。
  • 变量的命名需要符合Java标识符语法要求。
  • 中文可以作为变量名字,但是不推荐使用。

变量的访问

  • 可以对变量中的值进行存取操作
  • 变量在定义的时候,指定了类型。Java编译器会检测对该变量的操作是否符合定义的数据类型,如果对变量的赋值或操作不符合定义的数据类型,会产生编译错误。

Java中的基本数据类型

整形int

  • int是最常用的整数类型。一个int类型占用4个字节(32位)。
  • 最大表示范围为:-2147483648 ~ 2147483647
  • 整数类型的直接量(literal)默认是int类型。
  • 两个int整数相除(/),结果取整,舍弃小数部分(非四舍五入),结果还是整数。
  • 整数运算要防止溢出:整数运算的过程中,运算结果,如果超过了整数能表示的最大范围,会发生溢出。正数过大溢出,结果变为负数;负数过小溢出,结果变为正数。

长整型long

  • 如果要表示的整数已经超过了int的范围,那么可以用long类型定义变量,保存数据。
  • long类型数据范围(8个字节,64位):-9223372036854775808~9223372036854775807 
  • long类型直接量的表示,需要在数据后面加一个L或l; 
  • 通过long类型来存储系统当前毫秒数,jdk提供了一个方法( System.currentTimeMillis() ),来获取从1970.1.1日零时至今的毫秒数,返回结果为long.
  • 对于较大的整数运算(超出int范围),可以使用long型。

double & float类型

  • 所谓的浮点类型就是小数类型,包含double 和 float。
    浮点类型的默认直接量是double类型。
    如果要使用float类型,需要在数据后面加F或f。
    double类型的精度比float类型的精度高,因此,一般用double类型。
    举例: float f1 = 3.3F;double money = 3.5;
  • double类型数据运算的时候,会有舍入误差。
    由于舍入误差,导致浮点数不能精确运算。
    二进制中无法表示1/10,就像十进制中无法精确表示1/3,所以二进制表示浮点数存在误差。

char类型

  • 字符类型实质上是一个16位的无符号整数,这是整数对应的字符编码
    Java字符类型采用Unicode字符集编码。Unicode字符编码是国际上通用的定长字符集,所有字符都是16位。
    字符直接量,可以采用字符的形式,比如‘中 ’;
    或者采用Unicode编码的方式,比如:‘\u4e4d’
    字符是整数可以参与运算,比如 char c = ‘A’ ; int a = 10 + c ;//75
  • 字符直接量赋值
    整数赋值(0~65535)
    Unicode编码赋值
    举例: char a = ‘A’;char a = 65;char a = ‘\u0045’;
  • 转义字符(\):对于不方便输出的字符,采用转义字符表示。

 boolean类型

  • boolean类型,即布尔类型,适用于逻辑运算,一般在程序流程控制中作为条件判断。
  • boolean类型的值只有两个:true/false。不能用0或非0代替true/false.
  • boolean类型不能与整数类型做转换

数据类型转换

自动数据类型转换(隐式转换):小类型,自动转为大类型。

强制数据类型转换:从大类型,转到小类型,需要强制转化,可能会有精度损失或者溢出。
举例:
int a2 = (int) 3.6 ;

Java运算符

算数运算符

  • Java中的算数运算符,包含:+(加),-(减),*(乘),/(除),%(取余),++(自增),--(自减)。
    ++(自增),--(自减)运算是在自身值的基础上,增加或者减少1.
    ++,--写在变量的前面,运算的时候,需要先增加或者减少1,再参与运算。
    ++,--写在变量的后面,运算的时候,需要先参与运算,再增加或者减少1。
  • “+”,“-”,可以作为数据正负符号。

其中:
运算符“+”,当用于数据类型时,加法运算;当用于字符串型时,字符串拼接运算。
字符串(String)+ 数据,java中会自动将数据转为字符串,然后两个字符串相连,生成一个新的字符串。

关系运算符

  • Java中的关系运算符,包含:>(大于),<(小于),==(等于),>=(大于等于),<=(小余等于),!=(不等于)。
  • 关系运算的结果为boolean类型。

逻辑运算符

  • &&,& “与”运算
  • || ,|“或”运算
  • !“非”运算
  • 逻辑运算的结果为boolean类型。

其中:
短路逻辑: && , || , 指当我们能够判断出运算结果的时候,后续的表达式不再执行。 ——常用短路逻辑。
不短路逻辑: & , | , 每个参与运算的表达式都需要执行。 —— 不常用

赋值运算符和扩展赋值运算符

  • 赋值运算符“=”是最常用的赋值运算。它将“=”右边的运算结果的值,赋给“=”左边的变量。
  • 赋值运算符的优先级很低。(低于算数运算符)
  • 在赋值运算符的前面,加入算数运算符,即为扩展赋值运算符。有:+=,-=,*=,/=,%=

三目运算符

  • 三目运算符格式:
    X ? Y : Z; boolean表达式?表达式1 : 表达式2;
  • X为boolean表达式,如果X为true,在运算结果为Y的值,如果X为false,则运算结果为Z的值。

程序的结构

任何复杂的程序都是由“顺序结构”,“分支结构”,“循环结构”组成的。

分支结构 

  • Java语法中的分支结构包含以下四种
  • if //如果… 
  • if……else…… //如果…否则…
  • if…….else if……. //如果…否则 如果…..
  • switch……case…… //switch….情况1…情况2…..
  • 分支结构可以嵌套使用

循环结构

循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似的语句被有规律地执行。
循环三要素:

  • 循环变量初始化
  • 循环条件(以循环变量为判断条件)
  • 循环变量的改变(向着循环结束变)

for循环

  • for循环是最经典的循环语法,也是使用最多的循环方式。
    for语法规则:
    for(表达式1;表达式2;表达式3){ 
    // 语句序列
     }
    表达式1:初始化表达式,负责完成循环条件的初始化
    表达式2:循环条件表达式,值为boolean的表达式,指定循环条件
    表达式3:循环后的操作表达式,负责修改变量,改变循环条件
  • for循环代码执行流程
  • for循环流程图
  • for循环——特殊写法
    for(;表达式2;表达式3)
    for(;表达式2;)
    for(;;)
    for(int a = 0, b=5 ; a<b; a++,b--) {
    System.out.println(a+",,,"+b);
    }

    while循环

    while语法规则:

    语句0 ;
     while(循环条件){
    语句1 ;//循环体
     } 


     语句2;

     do.....while循环

    • do…while语法规则:
      语句0 ;
       do{
      语句1;//循环体
       语句2;//
       }while (循环条件); 
       语句3 ;
    • 对比while循环:
      while循环先判断,再执行;
      do…while先执行一次,再判断。
      While循环比
      do…while循环用得多。

      死循环

      循环没有指明结束条件的情况会造成死循环

       break & continue

      • break可用于循环语句或switch语句。
        break用于循环,可使程序终止循环从而执行循环后面的语句。常常与条件语句一起使用。
      • continue 用于循环语句中,表示跳过循环体剩余语句,继续执行下一次循环。continue 只能在循环语句中使用。

      循环的嵌套

      • 循环的内部,再有其它循环,就是循环的嵌套。
      • 外层走一次,内层走所有次
      • 建议循环层数越少越好

      Java数组

      什么是数组

      • 数组:相同数据类型的元素组成的集合
      • 元素按线性顺序排列。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素; 除最后一个元素外,每一个元素都有唯一的后继元素(“一个跟一个”),可以通过元素所在位置的顺序号(下标)做标识来访问每一个元素(下标从0开始,最大到元素的个数-1)
         

      数组的使用

      声明数组的语法:
      数据类型 [] 数组名 = new 数据类型 [ 大小 ]

      数组声明后的默认值 ,数组new 之后,每个元素都有默认值。 int,long 默认值为 0 double 默认值为 0.0 boolean 默认值为false,char 默认值为空字符。

数组的交换位置

package day5;
public class ArrayDemo2 {
public static void main(String[] args) {
// 1. 创建整形数组
int[] arr = new int[]{10,15,8,40,25,5};
// 2. 把数组中最大的数据值移动到最末位。
for(int i=0 ; i <= arr.length -2 ; i ++){
if(arr[i] < arr[i+1]){ // 当前元素 小于 下一个元素, 不交换位置, 反之
交换位置
continue; // 跳出本次循环
}else{
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
// 3. 遍历输出数组的元素
for(int i = 0 ; i < arr.length ; i ++ ){
System.out.println(arr[i]);
}
// 4. 练习:把最小值移动末尾
for(int i =0 ; i < arr.length -1 ; i++){
if(arr[i] < arr[i+1]){// 当前元素,小于下一个元素,说明需要交换位置。
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp ;
}
}
// 5. 遍历输出数组的元素
System.out.println("最末尾是最小的:");
for(int i = 0 ; i < arr.length ; i ++ ){ // 假设: i <= arr.length
// i = 0,1,2,3,4,5,6 , 下
标只能是0,1,2,3,4,5 ,
// i=6 数据数据arr[6] , 找
不到 , 程序处理不了, 就抛异常
System.out.print(arr[i] + "\t");
}
/*
Exception : 异常
ArrayIndexOutOfBoundsException : array 数组 , index 索引 , out of
bounds 超出边界
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
6
at day5.ArrayDemo2.main(ArrayDemo2.java:33) // 类中的第33行。
*/
}
}

数组的排序

冒泡排序 : 所谓的冒泡算法就是从左往右依次比较两个数大小,若前一个数大于后一个数,则两个数交换位置。

升序

package day5;
// bubble: 泡
// 冒泡排序: 双重for循环, 外层for循环走一次,内层循环周n次, 就能把数组中的一个元素的位
置排好 。
public class BubbleDemo {
public static void main(String[] args) {
int[] arr = new int[]{10,15,8,40,25,5};
// 1. 升序排序
for(int i= 0 ; i < arr.length - 1 ; i++ ){
for(int k = 0 ; k < arr.length - 1 ; k++){ // k = 0 , 1,2, 3,4
, k+1 = 1,2,3,4,5
if(arr[k] < arr[k+1]){
continue;
}else{ // 下一个小,就交换位置
int temp = arr[k];
arr[k] = arr[k+1];
arr[k+1] = temp ;
}
}
}
// 2. 输出升序数组
for(int i= 0 ; i < arr.length ; i++){
System.out.print(arr[i] + "\t");
}
}
}

降序

package day5;
// bubble: 泡
// 冒泡排序: 双重for循环, 外层for循环走一次,内层循环周n次, 就能把数组中的一个元素的位
置排好 。
public class BubbleDemo1 {
public static void main(String[] args) {
int[] arr = new int[]{10,15,8,40,25,5};
// 1. 降序排序
for(int i= 0 ; i < arr.length - 1 ; i++ ){
for(int k = 0 ; k < arr.length - 1 ; k++){ // k = 0 , 1,2,
3,4 , k+1 = 1,2,3,4,5
if(arr[k] < arr[k+1]){
int temp = arr[k];
arr[k] = arr[k+1];
arr[k+1] = temp ;
}
}
}
// 2. 输出降序数组
for(int i= 0 ; i < arr.length ; i++){
System.out.print(arr[i] + "\t");
}
}
}

数组排序函数sort

Arrays.sort()——jdk提供的排序方法。

String[] names ={"tom","cat","jerry"};
Arrays.sort(names);
System.out.println( Arrays.toString(names) ); // import
java.util.Arrays;

数组复制

JDK提供对数组进行复制的方法,即将一个数组(源数组)中的各个元素值复制到另一个数组(目标数组)中:

 数组扩容

数组的长度在创建后不可以改变的。所谓“扩展”是指创建一个更大新数组,并将原有数组的内容复制到其中。
Jdk提供了一个方法,Arrays.copyOf 可以实现数组的“扩容”

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值