javaSE学习笔记
jdk开发环境1.80_241版本,jre运行环境
SE标准版,EE企业版,ME—java的前身
一、java语言特点
面向对象,简单性,跨平台
- 编译执行
将源文件编译成平台相关的机器文件,一次编译,多次执行;
执行效率高,不可跨平台; - 解释执行
跨平台,执行效率低;
将源文件交给不同的平台独有的解释器(每次翻译,每次执行)------现翻译现执行 - java执行机制:先编译,再解释
将源文件编译成字节码文件(平台中立文件.class),在进行解释*.java----编译0----执行----*.class---------在jvm for ***的操作系统/平台
- JVM虚拟机
- JRE运行环境包含JVM和解释器
- JDK开发环境包含JRE+类库+开发工具包(编译器+调试工具)
- 配置环境---------系统变量(java_home、classPath、path)
,用cmd窗口检验是否成功:javac
Dos命令
d:、dir、cd…、cls、del、rd、exit…
Tab制表位8个空格
java的应用程序
javac 源文件名.java-------类名.class
java 类名-------运行
一个类中只能有一个主方法
一个源文件可以可以定义多个类
编译后,每个类都可以生成独立的.class文件
公开类,类名与文件名相同(包括大小写)
一个源文件中只能有一个公开类
- package
用于管理.class字节码文件
必须在源文件第一行
带包翻译javac -d.源文件名称.java
带包运行 java 包名.类名(包名+类名:全限定名)
- 注释
单行//、多行/bj/、文档注释/** cxzc */
二、语法
java强类型语言,变量的类型必须与数据类型一致(java、C++、C#)
变量声明与赋值有三种:同时,分开,同时多个
java中的数据类型:基本与引用
1.基本数据类型:
整数
(
byte1---取值范围(-128~127),
short2取值范围(-32768~32767),
int4取值范围(-2147483648~2147483647),
long8取值范围(-9223372036854775808~9223372036854775808)
),
小数
(
float4取值范围
(-3.4E+38~-1.4E-45)
(1.4E-45~3.4E+38),
double8
(-1.7E+308~-4.9E-324)
(4.9E-324~1.7E+308)
`E代表10`
),
布尔(boolean1),
字符(char1)
2.引用数据类型:字符串,数组,对象
java 中所有数据类型的“整数字面值”的默认类型int,当其超过int的范围时,则提醒“过大的整数
在数值后加上“L”----告知JVM,此值为Long类型
java 中所有数据类型的“小数字面值”的默认类型double,当其使用float存储时,在数值后加上“F”----告知JVM
字符编码:ASCII(美国)、Unicode(支持所有语言,跨平台,跨语言)、
“\”转义字符
类型转换(·
bollean类型无法与其他类型转换
)
-两种类型兼容
-自动转换(小(目标文件)——大(源文件))
-强制类型转换
例:short s=123; byte b=(byte)s;
长度足够,数据完整
长度不够,数据截断
*运算符*
自动类型提升
+
拼接(String类型)
控制台输入Scanner
import java.util.Scanner引入外部文件
Scanner input=new Scanner(System.in)
int i=input.nextInt();控制台获取一个整数
double i=input.nextDouble();控制台获取一个小数
String i=input.next();控制台获取一个字符串
char i=input.next().charAt(0);控制台获取一个字符
三、选择结构与分支结构
····switch(变量|表达式)
case1:
case2:
case3:
.....
break:
default:
................
局部变量在内部,先赋值,后使用
四、循环结构
循环while:
- 初始部分:用以判断的变量
- 循环条件:决定是否继续循环
- 循环操作:单次执行的逻辑代码或任务
- 迭代部分:控制循环条件改变的增量
解决问题有:
1.1~100之间所有数字的和
2.1~100之间所有偶数
3.1~100之间所有的奇数
do…while:
- 先执行(无入口条件),后判断
解决问题:
循环次数不明确
1.输入情况,判断输出结果【Scanner问题
】
for(初始部分
仅一次
;循环条件;迭代部分):与while相同
- 首次既有入口条件,先判断、再执行,适用于循环次数明确的场景
解决问题:
1.计算平均分
break-退出整个循环;continue退出此次循环
嵌套循环
九九乘法表
矩形打印
金字塔
五、方法
public static void 方法名称(
形参
){//方法主体}减少代码的冗余
- 在类的内部
- 与main方法并列
- 方法名(
实参
)调用
方法的参数
- 形参:
a. 局部变量的声明
b. 其可以让代码更为灵活,普适性高,易修改和维护
单个或多个参数:
- 传值的个数与方法一致,数据类型一致,位置一致
定义参数
- 根据业务需求例:登录时-------用户名和密码
返回值以及类型
1.public static返回值类型
方法名称(形参列表){return v;}
2. 变量=方法名称变量类型与返回值类型一致-----便与接收
结束当前方法,并伴有返回值,返回到方法调用处;
结束当前方法,直接返回方法调用处(void类型中)
多级调用
------无穷递归
(没有办法结束)
递归
(大问题变为小问题)----解决复杂问题
递归可以解决的事,循环也可以解决!!!