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 -versionjava -version 版本不一致, 运行不了 。 编译版本和运行版本不一致

​ 解决:查看环境变量, 保证 JAVA_HOMEpath中保持一致

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:结束本次,继续下一次

不可达语句:永远没有机会执行的语句

posted @ 2020-09-17 01:00  stwcattle  阅读(54)  评论(0)    收藏  举报