JAVA学习_随笔(一)
介绍
语言的发展:低级到高级
机器语言(机器直接识别)
汇编语言(助记符,机器不能直接识别)
高级语言(c, c++ , c#, java, python, go ) 高级,接近人的思维,不能直接被机器识别
高级语言:
我们使用高级语言编写代码(源代码) -> 翻译过程 ->机器能识别的代码
java属于高级语言(编译+解释):
使用java语言编写代码(源代码)-> 编译器(.class)字节码文件 -> 解释器,解释执行
编译:经过中的编译过程,生成一个中间产物, 再由机器将编译好的机器代码进行执行
解释:将源代码一边解释一边执行
现在我们开发人员,所以使用java写代码,.java文件
JDK(Java开发环境): JRE 以及 编译器
JRE(Java运行时环境):包含JVM以及java核心的jar包
JVM(Java虚拟机):解释器, 只是可以解析执行class文件
搭建
1、下载jdk安装包
2、安装
安装的过程中,安装路径中不要出现中文, 空格
安装在非C盘,尽量在一个自己比较好找的目录中
3、安装成功以后, 进行测试(安装目录中进行测试 java -version , javac -version)
4、配置环境变量
原因:是因为我希望在任何地方都可以使用java命令
因为操作系统在找命令的时候,在当前的目录中查找命令,如果没找到,path后面的目录中查找
JAVA_HOME = 安装目录bin的上一层
Path + = %JAVA_HOME%\bin
因为 java命令在bin目录中,所以最后的path里边需要到bin这一层
5、测试环境变量是否配置成功
在任意的地方输入java -version命令
HelloWorld实现
1、找个合适的地方 床架一个文件,修改后缀名 .java
2、按照java的语法规则写代码(编辑)
public class 类名{
public static void main(String[] args){
System.out.println("Helloworld");
}
}
3、保存并编译
javac 源文件的完整名
.class文件
4、执行.class文件
java class文件名
编译的阶段,类(class) ,类是java 的编译单位
入口:程序执行的开始点,必须是一个固定的入口
问题
1、javac -version 和 java -version 版本不一致, 运行不了 。 编译版本和运行版本不一致
解决:查看环境变量, 保证 JAVA_HOME和path中保持一致
2、classpath -> 类路径, 表示以后我们运行class文件的时候,会去指定的路径下查找class文件
注释
注释是对代码的说明。希望大家养成写注释的好习惯
三种
// 单行注释 方法体中 代码解释
/*
多行注释 方法上
方法描述
参数说明
返回值说明
*/
/**
文档注释 类
作者
日期
类说明
*/
项目Project
项目:文件夹,用来存放文件(代码),环境
包
也是文件夹,帮我们将代码进行分类,类似的代码放在同一个包下,包会形成作用域
包的命名: 以公司的域名倒着写+模块名
shsxt.com -> com.shsxt
包的声明:package 包名;
类的路径:类真实的位置, 需要和包的声明保持一致
关键字
标识符
标识符就是名字
变量
一个带名字的空间,可以用来存储数据
需要先定义,后使用。 在使用一个变量的时候,必须保证变量中有值。
数据类型 变量名 = 值;
局部变量:
位置->方法中,或代码块中,没有初始值,必须手动初始化。作用域(最近的比自己大的最小的{}中)
成员变量|属性:
类中,方法|代码块外,有初始值的。作用域为整个类中
常量
常量就是不能该值的量
字面量: 1, ‘a’
被final修饰的变量 final int a = 10;
实例变量|成员变量|属性 都是同义词
局部变量和实例变量都可以是常量。实例变量如果是常量,必须要手动给值。常量命名规范,全大写,多个单词之间使用下划线隔开
数据类型
将数据进行分类,字面量。关键字
字面量,数据是什么类型由系统根据你的写法来识别
关键字则是通过关键字来表示类型
Java中只有两种类型(基本类型|简单类型,引用类型|复杂类型|混合类型)
基本类型只有8种:
引用类型有无数种:
数值型:整数、小数
整数:byte(1字节) , short(2字节), int(4字节), long(8字节)
小数|浮点数: float(4字节), double(8字节)
字符型: char(2字节)
布尔型|逻辑类型:booelan(1位) true, false
整型字面量默认是int类型,如果数值 超过了int能够表示范围,l``L
浮点数的字面量默认是dobule类型,如果需要存入float类型的变量中,需要加f F
int 1, -1
原码:
反码:
补码:
进制之间的转换:
逻辑运算符: &&, ||, !
特点:运算数只能是boolean类型。 结果也一定是boolean类型, 存在短路现象
&& : 存在fasle结果为false
|| :存在true, 结果为true
!: true是false, false是true
位运算符:&,|,^,~ , >>,<<,>>>
运算数是数值型, & | 也可以是boolean类型
& :按位与 -> 全1为1, 否则为0
| :按位或 -> 全0 为0 ,否则为1
^: 按位异或-> 相同为0, 不同为1
~: 按位取反 -> 0变1, 1变0
>>:按位右移
<<:按位左移
条件?结果表达式1:结果表达式2;
如果条件为true, 执行结果表达式1, 否则执行结果表达式2
类型转换
自动的: 从小类型向大类型转,能转就转,转不了就报错
小和大指的是表示数据的范围的大小
布尔类型不参与类型转换
流程控制语句
if选择
区间选择
if单选
if(条件表达式) {
满足条件表达式的时候执行的语句;
}
if-else双选
if(条件表达式) {
满足条件表达式的时候执行的语句;
}else{
不满足条件表达式的时候执行的语句;
}
if-else if 多选
if(条件表达式1) {
满足条件表达式1的时候执行的语句;
}else if(条件表达式2){
不满足条件表达式1但是满足条件表达式2的时候执行的语句;
}...else{
不满足前面所有条件时执行的语句;
}
switch选择
定值选择
switch(表达式){
case 值1: 语句s;
case 值2: 语句s;
...
default: 语句s;
}
1、计算表达式的值
2、使用表达式的值和case后面的值依次进行等值比较
3、当遇到了相等的表达式和case值的时候,执行当前这个case以及其后所有的case后面的语句(穿透现象)
4、如果前面的case值都没有和表达式的值相等,那么如果有default则执行default后面语句,如果没有default则结束这次选择
注意:case后面不能出现重复的值
swithc后面的小括号中的表达式:只能是 int或者自动转为int的类型,String,枚举。case后面的值的类型必须和switch后的类型保持一致
break
break用在循环,可以跳出(结束)本层循环
break也可以用在switch语句中,出现case后面,防穿透现象。遇到break之后,直接跳过这个switch
循环
for
for( 初始表达式; 条件表达式; 迭代因子){
循环体;
}
while
初始表达式
while(条件表达式){
循环体; // 迭代因子
}
do-while 循环体至少执行一次
do{
循环体;// 迭代因子
}while(条件表达式);
break:结束本层
continue:结束本次,继续下一次
不可达语句:永远没有机会执行的语句

浙公网安备 33010602011771号