Java学习笔记(第一阶段)

  • Post author:
  • Post category:java




一.Java语言的重要特点



1. 面向对象的(opp)


2. 健壮的


3. 跨平台性的(一个编译好的.class文件可以在多个系统下运行)


4. 解释性语言



二、Java核心机制-Java虚拟机



1. JVM基本介绍

(1)全称:Java virtual machine(Java虚拟机)

(2)JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令、管理数据、内存、寄存器,包含在JDK中

(3)对于不同的平台,有不同的虚拟机

(4)实现“一次编译,到处运行”



2. JDK基本介绍

(1)全称:Java development kit(Java开发工具包)

(2)

JDK=JRE+JAVA的开发工具

【Java,javac,javadoc,javap】

(3)JDK包含了Java开发工具,也包括了JRE



3. JRE基本介绍

(1)全称:Java runtime environment(Java运行环境)

(2)

JRE=JVM+Java的核心类库


(3)包括Java虚拟机和Java核心类库。若要运行开发好的Java程序,只需安装JRE即可



三、Java开发快速入门



1. 运行原理

在这里插入图片描述



2. 注意事项

(1)源文件以.java为扩展名,基本组成部分是类

(2)Java程序执行入口为main()方法,其固定格式为:public static void main(String[] args){…}

(3)Java语言严格区分大小写

(4)源文件中最多包含一个public类,其他类个数不限

(5)文件名必须为public类类名

(6)可将main方法写在非public类中,指定运行非public类,这样入口方法就为非public的main方法



四、Java转义字符

  在控制台,输入tab键,可以实现命令补全
  \t:一个制表位,实现对齐的功能
  \n:换行符
  \\:一个\
  \":一个"
  \':一个'
  \r:一个回车



五、注释



1. 注释类型

(1)单行注释 //(2)多行注释/*

/(3)文档注释/

* */



2. 细节

(1)多行注释里不允许有多行注释嵌套



六、代码规范

  1. tab默认整体向右移动,shift+tab整体向左移
  2. 运算符和=两边习惯各加一个空格
  3. 行宽度不超过80字符



七、变量



1. 概念
       变量相当于内存中一个数据存储空间


2. 使用注意事项

(1)变量表示内存中的一个存储区域,类型不同,占用空间大小不同

(2)变量必须先声明再使用

(3)变量三要素:变量名+值+数据类型

(4)程序中+的使用:左右两边都为数值型时,做加法运算;左右两边有一方为字符串时,则做拼接运算



3. 数据类型

(1)基本数据类型:数值型【byte,short,int,long,float,double】,字符型【char】,布尔型【boolean】

(2)引用类型:【类,接口,数组】



4. 整数类型
类型 占用存储空间
byte 1字节
short 2字节
int 4字节
long 8字节

使用细节:

(1)整型常量默认为int型,声明long型常量需后加’l’或’L’

(2)1byte=8bit



5. 浮点类型
类型 占用存储空间
单精度float 4字节
双精度double 8字节

使用细节:

(1)浮点型常量默认为double型,声明float型常量需后加’f’或’F’

(2)通常情况下,应该使用double型,它比float型更精确


javaAPI文档:

API(应用程序接口)



6. 字符类型
 	使用细节:
(1)char类型占用2个字节
(2)char本质是一个整数,在输出时,是unicode码对应的字符,char类型是可以进行运算的


7. 布尔类型
 	使用细节:
(1)boolean类型占用1个字节
(2)boolean类型只允许取值true和false


8. 基本数据类型转换

在这里插入图片描述


自动类型转换

(1)概念:在Java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的类型

(2)细节:

  • 自动提升原则:表达式结果的类型自动提升为操作数中的最大类型
  • 多种类型混合运算时,系统首先自动将数据转换为容量最大的那种数据类型,载进行计算
  • (byte,short)和char之间不会相互转换
  • byte,short,char他们可以计算,在计算时首先转换为int
  • boolean不参与转换


强制类型转换


(1)概念:将容量大的数据类型转换为容量小的数据类型,需加上强制转换符()

(2)细节:

  • 强制符号只针对最近的操作数有效
  • char类型可以保存int的常量值,但不能保存int的变量值
  1. 基本数据类型和string类型的转换

    (1)基本类型转string类型:将基本类型的值+“”即可

    (2)string类型转基本数据类型:通过基本类型的包装类调用parseXX方法即可



八、运算符



1. 算术运算符

在这里插入图片描述


细节:



对于除号“/”,整数之间做除法时,只保留整数部分而舍弃小数部分



2. 关系运算符【比较运算符】

在这里插入图片描述



3. 逻辑运算符

1)a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false

2) a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false

3) a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false

4) a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false

5) !a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true

6) a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false

细节:

&&短路与:如果第一个条件为false,则第二个条件不会判断(常用)

&逻辑与:不管第一个第一个条件如何,第二个条件都要判断

(短路或与逻辑或与上述特点相同)



4. 赋值运算符

细节:

运算顺序

&逻辑与:不管第一个第一个条件如何,第二个条件都要判断

(短路或与逻辑或与上述特点相同)



5. 三元运算符

基本语法:

条件表达式?表达式1:表达式2

运算规则:

1.如果条件表达式为true,运算后的结果是表达式1

2.如果条件表达式为false,运算后的结果是表达式2



6. 运算符优先级

在这里插入图片描述



九、程序控制结构



1. 顺序控制

程序从上到下逐行执行



2. 分支控制

(1)单分支

(2)双分支

(3)多分支

(4)嵌套分支

(5)switch分支

基本语法:

switch(表达式){


case 常量1:

语句块1;

break;

case 常量2:

语句块2;

break;



default:

default语句块;

}

细节:

(1)case子句中的值必须是常量,而不能是变量

(2)当没有匹配的case时,执行default

(3)如果没有写break,程序会顺序执行到switch结尾

(4)表达式中表达式的返回值必须是(byte,short,int,char,enum[枚举],string)



3. 循环控制

(1)for循环控制

基本语法:

for(循环变量初始化;循环条件;循环变量迭代){


循环操作(可以多条语句);

}

细节:

(1)for(;循环判断条件;)中省略的内容可以写到其他地方,但分号不能省略

(2)当循环变量初始化和变量迭代有多条语句时,中间用逗号隔开

(2)while循环控制

基本语法:

while(循环条件){


循环体(语句);

循环变量迭代;

}

(3)do…while循环控制

基本语法:

循环变量初始化;

do{


循环体(语句);

循环变量迭代;

}while(循环条件);

细节:

(1)先执行,后判断,一定至少会执行一次

(4)多重循环控制

基本语法:

循环变量初始化;

do{


循环体(语句);

循环变量迭代;

}while(循环条件);

细节:

(1)先执行,后判断,一定至少会执行一次



4. 跳转控制语句-break

用来终止某个语句块的执行



5. 跳转控制语句-continue

用于结束本次循环,继续执行下一次循环



6. 跳转控制语句-return

用于跳出所在的方法



十、数组、排序、查找



1. 数组

(1)数组介绍

数组可以存放多个同一类型的数据,数组也是一种数据类型,是引用类型。

(2)数组使用

使用方法1:动态初始化

定义:数据类型 数组名{} = new 数据类型[大小]

声明数组:数据类型 数组名[]/ 数据类型[] 数组名;

创建数组:数组名=new 数据类型[大小]

使用方法2:静态初始化

初始化数组:数据类型 数组名[]={元素值,元素值…}

(3)注意事项和细节

(1)数组创建后,如果没有赋值,有默认值int 0,short 0,byte 0,float 0.0,double 0.0,char \u0000,boolean false,string null

(2)数组属引用类型,数组型数据是对象(object)

(4)数组赋值机制

(1)基本数据类型赋值,值为具体数据,且相互不影响

(2)数组在默认情况下是引用传递,赋的值是地址

(5)数组拷贝

(1)基本数据类型赋值,值为具体数据,且相互不影响

(2)数组在默认情况下是引用传递,赋的值是地址



2. 排序

冒泡排序法

基本思想:

排序序列从后往前,依此比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部



3. 查找

(1)顺序查找

(2)二分查找(待补充)



4. 二维数组

(1)数组使用

使用方法1:

动态初始化


语法:类型[][] 数组名 = new 类型[大小][大小]

在这里插入图片描述

先声明:类型 数组名[][];再定义:数组名=new 类型[大小][大小]

使用方法2:

静态初始化


定义:类型 数组名[][]= {

{值1,值2…},{值1,值2…},…}

(2)使用细节

二维数组声明方式有:int[][] y/int[] y[]/int y[][]

二维数组实际上是由多个一维数组组成的,各个一维数组的长度可以相同,也可以不同。



版权声明:本文为zbq147258_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。