第一章:java概述
基本概念:
-
什么是程序?计算机如何执行程序?
计算机可识别的有序指令集,将源文件编译为目标文件,将目标文件和库文件等资源链接形成可执行文件,计算机执行这个文件的指令
-
java重要特点:
1,面对对象的(oop)
2,健壮的
3,跨平台 windows/Linux (编译后都可用 通过jvm实现)
4,解释型(编译后需解释器执行)
-
Java核心机制-java虚拟机JVM
1,一个虚拟计算机,具有指令集并使用不同存储区域。负责执行指令,管理数据,内存,寄存器,包含在jdk中
2,不同平台虚拟机不同
3,屏蔽了底层运行平台的差别,一次编译到处运行
-
JDK即java开发工具包
1,JDK=JRE+java开发工具
2,JRE-JAVA运行环境=JVM+JAVA的核心类库
一,Java程序运行的过程
①编写.java文件
(源文件)
②javac编译.class文件
(字节码文件)
③java运行类
注:1.类目和文件名一致 2.语言切换编码保存 3.运行类名
-
1,什么是编译?什么是运行?(jvm)
编译:将.java文件编译为jvm能识别的字节码文件
运行:将.class文件装载到jvm中执行
-
2,有哪些规范?8
①源文件的扩展名为.java。基本组成部分是类clas
②执行入口是main()方法:
public static void main(String[] args){…}
③严格区分大小写
④java方法由语句组成,每个以;结束
⑤大括号必须成对出现
⑥一个源文件最多有一个public类,其他不限
⑦有public类时,文件名必须与其一致
⑧main方法也可以写在其他类中,每一个类对应一个字节码文件
二,转义字符
\t:制表位,对齐
\n:换行符
\\
\’
\”
\r
三,文档注释
-
格式
/** *@标签 */
生成指令: javadoc-d 注释文件生成路径 -标签 源文件名
四,java代码规范 7
1,类,方法的注释——javadoc
2,非doc注释,用于维护时,为什么,怎么改,注意
3,用table键调整代码位置,不用空格
4,符号两边加上空格
5,源文件用utf-8
6,行宽少于80字符
7,次行风格与行尾风格
五,dos基本原理
DOS:Disk Operating System磁盘操作系统
相对路径:从当前目录开始定位形成的路径
绝对路径:从顶级目录开始定位形成的路径
-
指令集
1,dir——查看当前目录内容
2,cd——切换到其他盘 cd /D c:
3,cd——切换到当前盘的其他目录
4,cd..——切换到上一级目录
5,cd/——切换到根目录
6,tree——查看当前目录的所有子目录
7,cls——清屏
8,exit——退出
9,md——创建目录
10,rd——删除目录
11,copy——拷贝文件
第二章:变量
变量是程序的基本组成单位,基本三要素:类型,名称,值;定义变量就是分配空间
概念:内存中一个数据存储空间的表示 使用:声明,赋值,调用
注意:
1,不同变量类型不同,占空间大小不同
2,区域必须有名称和类型
3,必须先声明后使用
4,该区域数据可以在类型范围内不断变化
5,变量在同一个作用域不能重名‘
6,三要素
加号的使用:
1,两边数值做加法运算
2,有一边是字符做拼接运算
数据类型:
基本数据类型:数值:6,字符:1,布尔:1
引用数据类型:类,接口,数组
整数类型:
字节byte:1字节
短整型short:2字节
整型int:4字节
长整型long:8字节
-
使用细节:
1,整数类型有固定范围和字段长度,不受os影响
2,整型常量默认为int,声明long常量后须加l或L
3,bit:位,计算机最小存储单位,byte:计算机基本存储单元
浮点型:
单精度float:4字节
双精度double:8字节
-
使用细节:
1,存放形式:浮点数=符号位+指数位+尾数位
2,尾数位部分可能丢失,造成精度损失
3,固定范围和字段长度,不受os影响
4,浮点型常量默认为double,声明float常量后须加f或F
5,结果为小数的值判断相等,要用差值范围来判断相等,二进制的精度问题
字符型:
char:2字节
-
使用细节:
1,字符常量用单引号括起来的单个字符‘’(不能用“”)
2,\n这样的字符是转义字符,代表单个字符
3,char本质是一个整数,输出对应Unicode码对应的字符
4,char可以进行运算,用Unicode码运算
-
本质
存储:字符——码值——二进制——存储
读取:二进制——码值——字符——显示
-
编码表:字符和码值的对应关系
ASCII:一个字节表示128个字符,空余128字符——用于英文
Unicode:两个字节,字母汉字都占两个字节——所有文字
utf-8:字母一字节,汉字3字节——根据不同符号变化字节数
gbk:字母一字节,汉字两字节
big5:繁体中文
Boolean布尔类型:
boolean:一个字节,只允许取true和false,不能是0,1,null
适用于逻辑运算,一般用于程序流程控制
- 使用细节:
自动类型转换
Java程序在赋值或者运算时,精度小的类型自动转换为精度大的数据类型
-
转换路线:
1,char-int-long-float-double
2,byte-short-int-long-float-double
-
使用细节
1,多种混合转化,先都转化为最大类型然后计算
2,大-小:报错;小-大:自动转换(byte的范围判断具体数赋值除外)
3,byte和short不能和char自动转换
4,byte,short,char的混合计算包括自我计算都转化为int
5,布尔类型不参与转换
6,计算结果自动转换为最大类型
强制类型转换】
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,要加上(),但可能造成精度降低或者溢出
-
使用细节
1,强转符号只对最近的操作数有效
2,char可以保存int常量值,但不能保存int变量值,需要强转
基本数据类型和string类型转换
基本类+“”转换为string
parse方法转换基本类(字符类型取字符串第一个)
-
注意事项:
1,格式不正确会导致异常,可编译但运行报错
API文档:
Application Programming Interface应用程序编程接口(写好的工具供你使用)
java类的组织形式:JDK——包——接口,异常,类——字段,构造器,成员方法
API使用方法:
1,包——类——方法
2,直接搜索
第三章:运算符
运算符是一种符号,用以表示数据的运算,赋值和比较
用内存分析法分析代码
算术运算符
取模的计算式:a%b=a-a/b*b
赋值采用临时变量
关系运算符(比较运算符)
关系表达式的结果是布尔值
逻辑运算符
短路运算效率高,后面条件不一定判断
逻辑运算符结果也是布尔值
赋值运算符
将某个运算后的值赋给指定的变量
a+=b→a=a+b
-
特点:
1,运算顺序从右向左
2,左边只能是变量,右边常量,变量或者表达式
3,复合赋值运算符会自动进行类型转换
三元运算符
条件表达式 ?表达式1 :表达式2
返回值:T-1,F-2(不返回的不执行)
-
使用细节
1,要随时注意返回类型
2,可以转换为if-else语句
3,可求最值
运算符优先级
1,括号
2,单目
3,算数
4,位移
5,比较
6,逻辑
7,三元
8,赋值
标识命名规则规范
标识符:对各种变量,方法和类等命名时使用的字符序列称为标识符
-
命名规则
1,26个大小写英文字母,数字,
2,数字不能开头
3,不可以用关键字或者保留字,但可以包含
4,严格区分大小写
5,标识符不能包含空格
-
命名规范
1,包名:多个单词组成,字母都小写
2,类名,接口名(大驼峰):多单词组成,所有单词首字母大写
3,变量名,方法名(小驼峰,驼峰法):多单词组成,首单词首字母小写,其余大写
4,常量名:所有字母大写,多单词下划线连接
关键字
定义:被java赋予了特殊意义,是有专门用途的字符串
特点:所有字母都是小写
键盘输入语句
用来接收用户输入的数据,需要一个扫描器scanner(对象)
-
步骤
1,导入该类的所在包: import java.util.Scanner;
2,创建该类对象(声明变量): Scanner myScanner = new Scanner(System.in);
3,调用功能:输入的值给一个类型 int age = myScanner.nextInt();
第四章:进制
-
对于整数有四种表示方式:
1,二进制:满2进1,以0b(0B)开头
2,八进制:满8进1,以0开头
3,十进制:满10进1
4,十六进制:满16进1,0~F(f),以0x(X)开头
进制转换:
-
一,转十进制
最低位乘n 位数-1次方求和
-
二,十进制转
除n直到商为0,将余数倒置
-
三,二进制转
1,转8,三位一组转换
2,转16,四位一组转换
-
四,转二进制
1,将一位8进制数转为三位二进制数
2,将一位16进制数转为四位二进制数
位运算符(二进制形式运算)
Java中有7个位运算符:&,|,^,~,>>,<<,>>>
1,按位与:两位全为1,结果为1,否则为0
2,按位或:两位有一位为1,结果为1,否则为0
3,按位异或:两位一位为1,一位为0,结果为1,否则为0
4,按位取反:1,0转换
5,算术右移:低位溢出,符号位不变,用符号位补溢出的高位(除2)
6,算术左移:符号位不变,低位补0(乘2)
7,逻辑右移:低位溢出,高位补0
原码,反码,补码:
-
规则
1,最高位是符号位
2,正数三码合一
3,负数反码:符号位不变,其余取反
4,负数补码:反码+1
5,0的反码,补码都是0
6,java中数都是有符号的
7,计算机运算都是以补码运行
8,运算结果看原码