此次复习笔记只是记录了自己忘记的、不会的和模糊的内容
JAVA学习
第一章 基础常识
1.1基础常识
1.软件开发
软件:计算机数据和指令的集合,系统软件和应用软件。
2.人机交互方式
图形化界面(一般)。
命令行方式:控制台输入指令。
3.常用DOS命令
dir:列出当前文件及文件夹
md:创建目录
rd: 删除目录
cd:进入指定目录
cd..:退回上级目录
cd\:退回根目录
del:删除文件
exit:推出dos命令
1.2 java语言概述
1.计算机语言
人与计算机交流方式:java、c、c++
2.面向对象
能够更好的在抽象层面来分析问题。
3.java解释型语言
java程序编译为字节码格式,在任何系统的解释器中运行。
1.3 java语言运行机制及以运行过程
1. java特点
(1)面向对象
(2)健壮性、完善性
(3)跨平台性:一次编写,处处运行。只需要安装java虚拟机 (JVM),由JVM负责java程序在该系统中的运行。
2.java两种核心机制
(1)java虚拟机(Java Virtal Machine):JVM
(2)垃圾收集机制(Garbage Collection):GC
3.跨平台性(因为JVM)
4.核心机制——java虚拟机
(1)JVA是一个虚拟的计算机,具有指令集并使用不同的存储区域。负 责执行指令,管理数据、内存、寄存器。
(2)java虚拟机机制屏蔽了底层运行平台的差别。
5.核心机制——垃圾回收
(1)c、c++:程序员手动编代码回收,(有点:能够在内存不使用时快 速回收,准确高效;缺点:容易失误出现bug)
(2)java: 垃圾回收是自动的,开了一个线程自动检测不用的内 存去回收(有点:自动的不会忘掉;缺点:回收不及时)
1.4 jdk、jre、jvm的关系
1. 什么是jdk、jre
(1)jdk:Java开发工具包,包括jre;其中的开发工具:编译工具 (javac.exe)打包工具(jar.exe)等
(2)jre:java运行环境,包括java虚拟机(JVM),和Java程序所需的 核心类库等,如果想要运行一个开发好的Java程序,计算机中只 要安装JRE即可。
简而言之:jdk开发,jre运行。
2 jdk、jre、jvm的关系
JDK( JRE (JVM) )
1.5开发体验——HelloWorld
public class Test{ public static void main(String[] args){ System.out.print("hello world"); } }
DOS命令运行:
编译:javac Test.java
运行:java Test
1.6 注释
1.特性:
提高代码阅读性,调试程序的重要方法
2.注释类型
单行://
多行:/* */
文档注释(Java特有):
/** *文档注释 *这是一个打印Hello World的类 *@author ahd *version */
第二章 java基本语法
2.1关键字
1.关键字
定义:被Java赋予特殊含义,用作专门用途的字符串(单词)
特点:都是小写
2.保留字
现在还没使用,以后的版本可能会使用为关键字:byValue、cast、 future、generic、inner、operator、outer、rest、var、goto、const;
2.2 标识符
1. 标识符
可以自己取名的地方都叫标识符。
2.规范
(1)26个英文字母,0-9,_或$组成;
(2)数字不可以开头;
(3)不可以单独使用关键字和保留字,可以包含;
(4)严格区分大小写
(5)不包含空格
(6)尽量有意义
2.3 java中的名称命名规范
1.Java中的命名规范
(1)包名:多单词组成时所有都小写;
(2)类名、接口:多单词组成时,所有首字母都大写;
(3)变量名、方法名:第一个单词首字母小写,第二个往后 首字 母大写:xxxYyyZzz;
(4)常量名:所有都大写,多单词用下划线链接 XXX_YYY_ZZZ
2.4 变量概念(和C一样)
1.变量格式
数据类型 变量名 = 变量的值
2.变量的概念
(1)内存中的一个储存区域;
(2)必须先声明后使用;
(3)变量是通过变量名来访问的。
2.5 变量的分类
1. long 类型
long L = 3l 要在后面跟上 l (字母)
2. float类型
floa f = 1.22f 跟上字母 f
2.6 运算符
1.算数运算符
对负数取模,可以忽略负号,被模数是负数不可忽略。
2.逻辑运算符
(1)^ 异或:两个里面一个成立一个不成立;
(2)“&”和“&&“区别:单个时,左边无论真假,右边都参与运算;双数 时,左为真时,右参与,否则不参与;
”|“和“||” :单个同理;双数时左边为真,右边不参与运算。
3. 位运算符
(1)位运算符是直接对二进制进行运算。
(2)左移:m<<n = m*2的n次方
3<<2 = 3 * 2 * 2 = 12
右移:乘以2的-n次方
(3)无符号右移:
正数:与右移一致
负数:看图
(4)与或运算
(5)异或运算
(6)反码
4. 三目运算符
(1)格式:
int i = 0; int k = i > 0 ? 1 : 0;
5.运算符的优先级
2.7程序流程控制
1. 顺序结构
2.分支结构
3.循环结构
2.8数组
1.一维数组
int[] ii; int a[]; //动态初始化:数组声明且为其分配空间,与复制操作分开进行; int[] b = new int[4]; b[0] = 1; b[1] = 2; b[2] = 3; //静态初始化: int[] c = new int[]{1,2,3,4};
2.二维数组
int[] ii0 = new int[2][3];