Java学习指南
之前在培训班培训过java课程,但是现在忘记的差不多了,所以写一篇博客,复习一遍;
现在的内容不是很全,以后会渐渐地充实这篇博客。
认识Java
Java发展史
JavaSE标准版;JavaEE企业版;JavaME小型版
java优势
Java程序运行机制
JDK相关知识
java开发环境:JDK
安装JDK
-
JDK下载地址:https://www.oracle.com/downloads/
-
JDK安装:双击运行安装包,……(记住安装目录)
-
JDK的环境配置:
-
进入系统变量:win+R,输入sysdm.cpl,选择高级,单击N键
-
配置JAVA_HOME;配置CLASSPATH;配置Path
-
-
测试JDK安装是否成功:
- win+R,输入cmd,Enter,输入java -version,Enter
- 出现相应的版本则表示安装成功
认识JDK
bin; db; include; jre; lib; src.zip; ……
-
bin
-
jre
-
lib
-
……
卸载JDK
-
删除Java的安装目录
-
删除JAVA_HOME
-
删除Path下关于Java的目录
-
测试JDK有无删除:java-version
使用Java
第一个Java程序:Hello World
-
新建一个文件夹,存放Java文件
-
新建一个Java文件
- 新建一个Hello.txt,将Hello.txt修改成Hello.java
【注意】系统可能没有显示文件后缀名,需要手动打开
-
编写代码
public class Hello{
public static void main(String[] args){
System.out.print("Hello World!");
}
}
-
编译.java文件(源文件),生成.class文件(字节码)
【Win+R,输入cmd,Enter,输入javac Hello.java 按下回车键】
javac Hello.java
- 运行.class文件(字节码)
java Hello
Java编辑工具
IDEA ,Eclipse,……
Java代码基础认识
java注释(单行,多行,文档)
//单行注释
/**
多行注释
*/
/***
文档注释
*/
java标识符
所谓的标识符,就是一个名称,它有着自己的一套定义规则:【英文字母】【美元符号$】【下划线_】开头
标识符中常见的命名规则
见名知意
a.包
最好是域名倒过来写,要求所有字母小写
www.rst.com com.rst.包的作用 com.rst.day02
b.类或者接口
如果是一个单词,首字母要大写,例如:Demo
如果是两个以上的单词,每个单词的首字母要大写
例如:HelloWorld(驼峰命名)
c.方法或者变量
如果是一个单词,所有字母全部小写,例如:hello
如果是两个以上的单词,从第二个单词开始首字母
要大写,例如:helloWorld
d.常量
如果是一个单词,所有字母全部大写,例如:HELLO
如果是两个以上的单词,所有字母全部大写,并且
每个单词之间用下划线连接,例如:HELLO_WORLD
java关键字
所谓的关键字,就是已经被定义好某种意义的标识符,只能引用,不能自己定义为其赋值。
goto和const作为保留字存在,目前并不使用
package 包
public 公有的
class 类
static 静态的
void 表示方法没有返回值
……
Java常量变量
常量:固定不变的量。变量:值可以变化的量
Java中常量的概述和使用
a.什么是常量
在程序执行的过程中其值不可以发生改变
b.Java中常量的分类
字面值常量
自定义常量(oop部分讲)
c.字面值常量的分类
整数常量 所有整数 101
小数常量 所有小数
布尔常量 较为特殊,只有true/false
字符常量 用单引号括起来的内容,里面
只能放单个的数字、字母、符号
字符串常量 用双引号括起来的内容
空常量 null(表示一种什么都没有的状态)
举例:
10.1 '7' true "abc" "a" ""(空字符串)
变量的概述(变量:变化的数据)
变量就是指计算机内存中一片存储区域
该区域有自己的名称(变量名)和自己的类型(数据类型)
该区域存储的数据可以在同一类型范围内不断的变化
定义变量的两种格式
格式1:
数据类型 变量名;
变量名 = 变量值;
int age;//声明一个int类型的变量age
age = 23;//将数据23赋值给变量age("="赋值符号)
格式2:
数据类型 变量名 = 变量值;
int age = 23;
定义变量的注意点:
变量一定要有初始化值
变量不能重复声明
变量有自己的作用域(一对{}之间有效)
进制
为什么写进制呢?
进制:就是进位制,是人们规定的一种进位方法
重点1:
计算机中存储数据的最小单元叫字节(byte),
一个字节占8个二进制位(bit位)
十进制:659=6*10^2+5*10^1+9*10^0
二进制:1011=1*2^3+0*2^2+1*2^1+1*2^0=11
任意进制转换为十进制的原理:
系数:就是每一位上的数据
基数:X进制,基数就是X
权:在右边,从0开始编号,对应位上的编号即为该位的权
结果:把系数*基数的权次幂相加即可
十进制转换为任意进制的原理:
除积倒取余
原码、反码、补码
原码:就是二进制定点表示法,即最高位为符号位
"0"表示正,"1"表示负,其余位表示数值大小
7的原码 0000 0111
-7的原码 1000 0111
反码:正数的反码与其原码相同,负数的反码是对其
原码逐位取反,但是符号位除外
7的反码 0000 0111
-7的反码 1111 1000
补码:正数的补码与其原码相同,负数的补码是在其
反码的末位加1
7的补码 0000 0111
-7的补码 1111 1001
重点2:
计算机中数据的运算是通过补码的形式来运算的
练习:
a.已知原码求补码
1011 0100
1100 1011
+ 1
1100 1100
b.已知补码求原码
1110 1110
- 1
1110 1101
1001 0010
java数据类型
强类型语言/弱类型语言
Java是强类型语言,Java变量必须先定义好,然后才能使用
Java基本数据类型
八大基本数据类型,四类八种【整型】【浮点型】【字符型】【布尔型】
整型:byte\short\int\long
整数型:
byte 占一个字节 -2^7~2^7-1 -128~127
short 占两个字节 -2^15~2^15-1 -32768~32767
int 占四个字节 -2^31~2^31-1 -21亿~21亿(大约)
long 占八个字节 -2^63~2^63-1 很大
Java在数学计算的时候不检查范围,在超范围
计算的时候会发生溢出现象,溢出计算是有害的!
需要在编程中了解极值加以避免
浮点型:float\double
浮点型:(小数型)
float 占四个字节 单精度
double 占八个字节 双精度(精度大约是float类型的2倍)
①为了追求计算的准确性,常使用double类型
很少使用float类型
②小数常量默认的类型是double类型,例如:5.5
③字面量的后缀:L/l D/d F/f
字面量:直接给出的常数,也称为"直接量"
④浮点数计算不保证绝对的准确性
字符型:char
字符型:
char 字符就是一个整数! unicode(字符集/编码表)
①Java的字符是unicode数字,是一个16位
无符号的整数
②Java字符的数字范围:占两个字节,0~65535
③Java字符支持主流的文字
④unicode中英文标准同ASCII码
⑤unicode中包含20000+中文字符
⑥字符的字面量使用单引号定义:'A' '中'
⑦字符是整数,所有的字符都可以参与数学运算
⑧特殊的控制字符:回车、推格、Tab等等
表示这些特殊的控制字符可以使用转义符号来书写
'\n' 换行字符
'\r' 回车
'\t' Tab
'\\' \
'\'' '
'\"' "
'\b' Backspace
.....
布尔型:boolean
布尔型:
boolean true(真)/false(假)
理论上占八分之一个字节
Java引用数据类型
除去基本数据类型,其余的全部都是引用数据类型
常用的Java引用类型
对象,八个包装类,字符串,时间,……
Java数据类型转换
强转:……。自动转:……。
Java运算符
算术运算符、赋值运算符、比较运算符、逻辑运算符、三目运算符、……
算术运算符
+ - * / %(取余) ++ --
a++与++a
我的理解就是这样的,虽然不太靠谱,但结果没有问题
int a=0;int b=0;
b=a++;表示b=a,然后a=a+1,结果b=0,a=1
int a=0;int b=0;
b=++a;表示a=a+1,然后b=a,结果b=1,a=1
赋值运算符
= += -= *= /= %=
a.基本的赋值运算符: =
把=右边的数据赋值给左边的变量
b.扩展的赋值运算符: += -= *= /= %=
+= 把左边和右边做加法,然后赋值给左边
比较(关系/条件)运算符
> >= < <= == !=
注意:不能写成“=”,无论你的操作是简单还是复杂,"=="的结果都是boolean类型
逻辑运算符
作用:用于连接两个布尔表达式
&(与)并且 |(或)或者 !(非)否则
短路逻辑运算:&& ||
非短路逻辑运算:& |
短路与运算:&&
如果布尔表达式1&&布尔表达式2,一旦表达式1的值
是false,那么不计算表达式2的值,整体返回false
短路或运算:||
如果布尔表达式1||布尔表达式2,一旦表达式1的值
为true,那么不计算表达式2的值,整体返回true
三目(元)运算符
语法:布尔表达式?表达式1:表达式2