java快速学习
# 一.java特性和优势
简单性,面向对象,可移植性,高性能,分布式,动态性,多线程,安全性,健壮性
二.java三大版本
1. javaSE:标准版(桌面程序,控制台开发)
2. javaME:嵌入式开发(手机,小家电)
3. javaEE:E企业级开发(web端,服务器开发)
- JDK(开发者工具,包括jre jvm)
- JRE(运行时环境包含jvm)
- JVM(虚拟机)
三.java开发环境搭建:
- jdk下载安装
- 配置环境变量
- jdk目录介绍
- helloworld 简单语法
- Notrpad++安装
卸载jdk
- 删除java的安装目录
- 删除环境变量JAVA_HOME
- 删除path下关于java的目录
- dos测试是否删除 java -version
安装jdk
- 找jdk8
- 同意协议
- 下载对应的版本
- 安装jdk
- 记住安装的路径
- 配置环境变量->计算机->属性->环境变量->JAVA_HOME 配置path环境
- 测试jdk是否安装成功 dos java -version
hellowworld
- hello.java文件
- javac hello.java 编译
- java hello 打印
四.java运行机制
编译型
解释型
.jaca文件-》Java编译器-》字节码.class文件-》类装载器-》字节码检验器-》操作系统平台
五.java基础语法
注释,标识符,关键字
-
- 注释:
单行注释
多行注释
文档注释
- 注释:
-
- 关键字:
abstract assert boolean break byte case catch
char class const continue default do double
else enum extends final finally float for
goto if implements import instanceof int
interface long native new package private
protected public return strictfp short
static super switch synchronized this throw
throws transient try void volatile while<details>
数据类型
* 强类型语言
所有变量必须先定义后才能使用
* 弱类型语言
*
java的数据类型分为两大类:
* 数值类型
*整数类型
- byte
- short
- int
- long
*浮点类型
- float
- double
*字符类型
- char
boolean类型
- 类
- 接口
- 数组
扩展
银行业务怎样表示?
float 有限 离散 舍入误差 大约数 接近但不等于
做好完全避免使用浮点数进行比较
double
··················使用BigDecimal 数学工具类
float d1 = 232213412412f;
float d2 = d1 + 1;
sout(d1==d2) => true
所有的字符本质还是数字
编码问题 Unicode 表:97 = a 65 = A 2个字节 0 - 65536
转义字符
\t 制表符
\n 换行
布尔值扩展
boolean flag = true;
类型转换
低--------------------------------------->高
byte,short,char->int->long->float->double
运算中,不同类型的数据先转换成同一类型,然后再运算
由高到低会出现内存溢出
强制类型转换 (类型)变量名 高--》低
自动类型转换 低--》高
不能对布尔类型转换
不能把对象类型转换成不相干的类型
再把高容量转换成低容量的时候,强制转换
转换的时候可能存在内存溢出,或者精度问题
操作比较大的数的时候,注意溢出问题
变量,常量,作用域
类变量,实例变量,局部变量
static 修饰符不区分顺序
常量
final
运算符
算术运算符
赋值运算符
关系运算符
逻辑运算符
位运算符
条件运算符
扩展赋值运算符
优先级???
包机制,javaDoc(文档注释)
语法规范
javaDoc:
@author 作者名
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
六.java流程控制
用户交互Scanner
java5特性
通过Scanner类获取用户的输入
基本语法
Scanner s = new Scanner(System in);
通过scanner类的next()与nextLine()方法获取输入的字符串,再读取前使用hasNext()与hasNextLine()判断是否还有输入的数据
IO流使用后必须关闭
next();
1.一定要读到有效字符后才可以结束输入
2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉
3.只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
4.next()不能得到带有空格的字符串
nextLine();
1.以enter为结束符,也就是说,nextLine()方法返回的是输入回车之前的所有字符
2.可以获得空白
顺序结构
选择结构
if单选择结构
if双选择结构
if多选择结构
嵌套的if
switch多选择结构
switch(expression){
case value :
//语句
break;
case value :
//语句
break;
default:
//语句
}
循环结构
for()循环
while()循环
do while()循环
增强for循环:
for(声明语句:表达式(可以是数组或集合){
//代码
}
break continue
break 强行跳出循环
continue 跳过未执行的语句,接着进行下一次是否执行循环的判定
七.方法
方法的定义及调用
方法是语句的集合
重载
重载就是在一个类中,有相同的函数名,但形参不同的函数
方法重载的规则
方法名称必须相同
参数列表必须不同(个数不同,或类型不同,参数排列顺序不同)
方法的返回类型可以相同也可不同
仅仅返回类型不同不足以成为方法的重载
实现理论
方法名称相同时,编译器会根据调用方法的参数个数,参数类型等逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错
命令行传参
包
可变参数
不定向参数
在方法声明中,在指定参数类型后面加省略号...
一个方法只能声明一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在他之前声明
递归
递归头,如果不调用头,陷入死循环
递归体
八.数组
数组的特征:
其长度是确定的,数组一旦被创建,。它的大小是不可以改变的
其元素必须是相同类型,不允许出现混合类型,
数组中的元素可以是任何数据类型,包括基本类型和引用类型
数组变量属于引用类型,数组也可以堪称对象,数组中的每个元素相当于该对象的成员变量
数组本身就是对象,java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身实在堆中的!!!
数组声明创建
首选 dataType[] arrayRefVar
基本不用dataType arrayRefVar
java使用new操作符来创建数组,语法如下:
dataType[] arrayRefVar = new dataType[arraySize]
数组索引从0开始
获取数组长度:
arrays。length
数组使用
java内存:
堆
存放new的对象和数组
可以被所有的线程共享,不会存放别的对象引用
栈
存放基本变量类型(会包含这个基本类型的具体数值)
引用对象的变量(会存放这个引用在堆里的具体地址)
方法区
可以被所有的线程共享
包含了所有的class和static变量
多维数组
Arrays类
数组的工具类

浙公网安备 33010602011771号