java 学习

JAVA 第一天

1. 认识 计算机语言

机器语言,汇编语言,高级语言


高级语言执行方式: 解释执行  编译后执行

2. 关于Java

Java简史

1991 开始  SUN 公司  Oak  詹姆斯.高斯林


Java的三个版本

老的名称: j2se  j2ee  j2me

javaSE :基础版 桌面应用 (单机的)

javaEE :企业级 web应用

javaME :微型版 移动端


java的特点

1. 跨平台性

2. 面向对象

3. 安全性

4. 多线程

5. 简单易用


3. Java程序的运行原理 (先编译 后执行)

1) 源文件 用来编写代码,后缀名是 *.java

2) 编译 源文件 生成字节码文件 *.class ,编译的命令是javac

3) 需要通过jvm的类加载器加载 程序 ,java 执行命令

4) jvm 通过 字节码文件来 生成 对应系统的 机器码

5) 操作系统 执行机器码 最终反映到硬件平台上


4. Java程序的跨平台原理 (一次编译 到处执行)

这里的平台指的就是操作系统

jvm Java虚拟机是完成Java程序跨平台的重要组件。

java程序可以跨平台 jvm不是跨平台的

也就是说不同的操作系统是需要安装不同的虚拟机的


5. Java语言环境的搭建


关于环境

JDK : Java 开发工具包


JRE :Java 运行时环境


JVM :Java 虚拟机


JDK中是包含 JRE  JRE中包含JVM


关于环境的安装和配置

1. 获得安装程序 途径 oracle官网下载

jdk-8u144-windows-x64.exe


2. 安装 jdk 和 jre

看图按


3. 配置环境变量

JAVA_HOME :

新建的 值 jdk的安装路径


path :

修改 在变量值得尾部添加

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin


classpath :

新建的 值

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

4. 验证是否配置成功

dos命令

验证三个命令

java   执行名

javac  编译命令

Java -version  查看版本信息


6. 编写执行 第一个 java程序

1) 新建一个文本文档

文件名称的首字母 大写

更改后缀名为 *.java

这个文件叫做 源文件 用来编写程序的


2) 打开文件书写程序

public class MingRui{

public static void main(String[] args){

System.out.println("明瑞教育,世界第一!");

}

}

书写完成 注意保存


3) 需要先将 源文件 编译成 字节码文件 *.class

当前文件夹 打开 dos命令窗口

使用 javac 文件名.java

执行完命令之后 文件夹中会生成 文件名.class文件


4) 执行程序

需要命令  java 文件名

第二

1. dos 命令

关于电脑的操作

1. 可视化界面操作方式  简单

2. 命令行操作方式  dos命令

windos中 代开 命令行

1) 搜索 cmd  打开的是用户的文件夹

2) windows+r 打开的是用户的文件夹

3) 文件夹 地址栏 输入 cmd  打开的是当前文件夹

3. 命令

dir :查看子目录

md : 新建目录

rd : 删除目录

cd : 打开某一个文件夹

.. 表示上一层目录

. 表示当前目录

目录名 打开指定的目录

盘符: 表示切换根目录


cls :清除屏幕


ping : 尝试是否能链接到指定的地址

127.0.0.1  代表本机地址


ipconfig: 查看计算机当前的ip地址


help 查看能使用的dos命令

help + 命令




2.分析Java代码

1) 关于类


关键字 class 用来定义一个类


语法 : class 类名 { 类体 }


类是Java程序 编译和执行的基本单位 ,

所有的Java程序都应该是在类中书写的

一个Java文件中是可以有多个类


关于公共类

公共类就是用 public修饰的类

语法 :public class 类名 {类体}

一个Java文件中只能有一个公共类

公共类的类名必须和文件名一致


2) 主函数/主方法 /入口函数/入口方法

固定的书写格式 (写错了的话 编译不会报错 执行才报错)

public static void main(String[] args){ 方法体 }


功能: 1. 程序执行的入口

2. 如果一个类 没有主函数 是不能单独执行的

3. 每一个类中只能有一个主函数

4. 主函数的方法体中 书写的就是我们要执行的代码


3) 两种打印方式

System.out.println("文字内容"); 打印后换行

System.out.print("文字内容"); 打印后不换行

分号 ; 代表一行代码的结束 。


4) 代码格式

每次发生 {} 的嵌套 {}中的内容 需要向后缩进 一个制表位


5) 命名规范

a. 标识符命名规则

1.标识符只能由数字,字母,下划线_,$美元符号组成。

2.不能是java关键字

3.不能已数字开始

4. 严格区分大小写

5. 在程序中尽量使用有意义的单词进行命名

b. 类名规范:所有类的名称 首字母都必须大写。

c. 驼峰命名规范: 当标识符由多个单词组成时 从第二个单词开始首字母大写。


6)注释

单行注释 // 从这的开始后的一行都被注释掉了

块注释 /*  */  从 /* 开始 到 */ 结束都被注释掉了

文档注释 /**   */ 注释范围和 块注释相同

功能 :通过 javadoc命令可以生成  类的说明书 帮助手册



3. 数据类型与变量

1) java是一门强数据类型的编程语言。

Java的数据分类

基本数据类型

数值

整数

byte  字节型  1字节  取值-128 ~ 127

short 短整型  2字节

int 整型  4字节

long  长整型  8字节

小数 (浮点类型)

double  双精度小数 8字节

float   单精度小数 4字节



字符 char 2字节  代表一个字符 中文或者英文


布尔 boolean  1字节 只能代表真和假

true 代表真

false 代表假


引用数据类型(通过基本数据类型组合而成的)

数组 Array

类 class

接口 interface

注解 annotation


2)进制和字节

进制: 记数方式

十进制 :0 1 2 3 4 5 6 7 8 9 10 11

八进制 :0 1 2 3 4 5 6 7 10

十六   :0 1 2 3 4 5 6 7 8 9 a b c d e f 10

二进制 :0 1 10 11


计算机是使用 二进制进行 存储的


数据单位

bit 位  只能存放一个二进制的数字

8个 bit位 = 1B 字节


4. 变量与常量

1)常量 constant: 常量是在程序运行期间不会发生改变的值。 固定的值

整数的 二进制 8进制和 16的表示

字符 常量 必须 '' 单引号包裹 只能有一个字符

转义字符 \t \r ... ...


字符串常量  必须使用 "" 包裹


2)变量 variable:

变量本质上就是内存中一块被命名的存储空间,

空间内可以存储不同的常量值。


变量的定义

1.定义变量时直接赋值

类型  变量名 = 值;


2. 先定义 后赋值

类型  变量名;

变量名 = 值;


3. 同时定义多个变量

类型  变量名= 值,变量名 ... ...;


变量的组成

1.类型:可以是Java中的任意数据类型

2.变量名:必须是一个合法标识符 遵守驼峰命名法

3.值:变量中真正存储的数据

4.存储单元:内存中的空间 大小由数据类型决定



3) 类型之间的转换

注意: boolean类型不能和任何类型转换



默认转换/隐式转换:

从小的数据类型或精度 转换为 大的数据类型或精度

不需要任何操作 自动完成


强制转换/显示转换:

从大的数据类型或精度 转换为 小的数据类型或精度

需要显示的声明

格式 : 目标类型 变量 = (目标类型) 值;



4) 成员变量 与 局部变量


成员变量:定义在类内 方法外

有初始值  不赋值也可以使用


局部变量:定义在方法 内的

没有初始值 不赋值不能使用


5) 变量的作用域和生命周期

作用域:在程序中变量生效的范围

生命周期:在程序运行的期间 变量存活的有效期时间

第三

1.运算符号: 可以理解为在程序中拥有不同功能的特殊符号。

表达式: 可以理解为由运算符参与,

并且最终能计算出结果的算式。

当我们输出一个表达式的时候,

输出的是这个表达式的计算结果。


1) 数学运算符号

+   -   *   /   %(模)  ++(递增)  --(递减)

注意: 1.所有的数学运算结果的类型,

都以参与运算的最大的数据类型和精度为准。


2. 如果计算中想获得小数

那么参与计算的 数据类型 至少有一个是小数


3. % 代表的是 取得余数


4. 递增和递减

在变量前++(--) 和后++(--)的区别

1) 单独使用没有区别

2) 和其他功能一起使用时

++ 在前 先+1 在使用

++ 在后 先使用 在+1

5. 表达式类型的自动提升

所有的byte型. short型和char型将被提升到int型

例外:final修饰的short,char变量相加后不会被自动提升


2) 赋值运算符号

=  +=   -=   *=   /=   %=

赋值: 把符号后的 值 给符号前的变量


例子 y+=100;   // y = y+100;




3) 比较运算符号

>  >=   <   <=   ==   !=


注意: 所有 比较运算 结果都是 boolean


==比较 两边的值是否相等 两边相等 返回 true

!=比较 两边的值是否不相等 两边不相等 返回 true


一个=是赋值 两个== 是比较


4) 布尔运算符号/逻辑运算符号

&与  &&短路与   |或  ||短路或   !非    ^ (异或)


注意 :计算boolean类型的值 结果也是 boolean类型


运算规则

1.与(& 和&&) :两边都真才是真,一边为假就是假。

2.或(|和||):两边都假才是假,一边为真就是真。

3.非(!):非真即为假,非假即为真,取反。

4.异或(^):两边相同就为假,两边不同就是真。


短路 : 两个的会短路

什么是短路:当表达式前半段的值已经确定了整个表达式的结果

后半段不执行

&& 前边为 false 假的时候  会短路

|| 前边为 true 真的时候  会短路



5) 字符串链接符号

+

当+出现在 字符串值得两边时 就是字符串连接符

任何数据类型 链接上字符串 都会变成 字符串类型


字符串的常量 是需要使用 "" 包裹的

字符串在Java中的类型 String

String name = "张晓明";




6) 条件运算符号/三元运算符号/三目运算符号

? :


布尔类型的结果? 选项1:选项2;


当?前的结果是 true 就选择 : 前的选项1

当?前的结果是 false 就选择 : 后的选项2


变量 g1

变量 g2

如果 g1>g2 ? 我就选择 g1 :我就选择 g2



7) 位运算符号/二进制运算符号

&   |   ~   ^   <<   >>   >>>


左移 << : 左移一位 相当于 *2

右移 >> : 右移 一位 相当于 /2


8) 其他运算符号

引用数据类型时 使用

new 实例化

instanceof 判断一个对象是否属于某一个类

控制语句中的

if 语句

第四

流程控制语句

注意: 程序默认是自上而下执行的

控制语句 : 控制代码 执行或者不执行  以及 反复执行


判断语句 关键字 if 如果 else 否则

1) if语句 (单分支判断)

if语句是指如果满足某种条件,就进行某种处理


语法:

if(条件表达式){

代码块;

… …

}


执行顺序:

if后 ()内的 表达式的结果只能是 boolean值

如果 if 的条件是 true 就执行 {}内的代码块

如果 if 的条件是 false 就不执行 {}内的代码块


2) if else语句 (双分支判断)

语法:

if(条件表达式){

执行语句;

… …

} else {

执行语句;

… …

}


执行顺序:

if后 ()内的 表达式的结果只能是 boolean值

如果 if 的条件是 true 就执行 if后{}内的代码块

如果 if 的条件是 false 就执行 else后{}内的代码块


3) else if 语句 (多分枝判断)

if(条件1){

执行语句1;

… …

} else if(条件2){

执行语句2;

… …

} else if(条件3){

执行语句3;

… …

} ... ...

else if(条件n){

执行语句n;

… …

} else{

最后的语句块

}


执行顺序:

从上至下 判断条件

某一个条件为true就执行它后边{}内的语句块

如果所有条件都是 false 就执行

最后一个else后{}内的语句块

不管语句块有多少 都只执行 一个


选择语句 关键字  switch选择 case事件  default默认  break中断


选择题1:以下 Java运行环境 的单词是(B)

A: jdk

B:jre

C: jvm


switch(值){

case 常量值1:语句块;break;

case 常量值2:语句块;break;

case 常量值3:语句块;break;

case 常量值4:语句块;break;

... ...

default:语句块;break;

}


switch后的值得类型都能是什么?

需要注意的是switch后的表达式的值只能是

byte ,short ,int ,char类型,

从jdk1.7开始可以是String字符串类型的

值还可以是enum(枚举)



执行顺序

使用 switch后()内的 值和

case后的值 进行比较

如果相等就执行 case后的语句

如果都不相等就执行 default后的语句块


关于break 中断

在switch语句块中 碰到了break表示执行结束

如果一直碰不到 break 就继续向下执行

直到所有的 语句块都运行完 或碰到下一个break





循环语句 关键字  while  do  for 循环    break中断  continue继续


1) while 循环

语法

定义初始值变量;

while(循环条件){

循环体;

步长;

}


执行顺序

先执行初始值变量 (只执行一次)

判断条件

条件为 true  向下执行 --->循环体 和 步长 --->判断条件


条件为 false ---->结束循环


循环的4个要素

1. 初始值:定义了一个变量赋值,代表循环从几开始

记录循环的次数

2. 循环条件: 为真开始循环 为假结束循环

3. 循环体: 重复的代码块

4. 步长: 改变初始值 使条件从真到假 从而结束循环




2) do while 循环

语法

初始值;

do{

循环体;

步长;

}while(条件);


while 和 do while的不同

1.书写上

while 是先书写条件

do while 最后书写条件

2. 执行顺序

while 是先判断条件 然后执行循环体

do while 是先执行循环体 然后判断条件

3. 结果的不同

如果初始条件为 true时 结果没有不同

如果初始条件为 false时

while循环不执行

如果初始条件为 false时

do while循环至少执行一次



3) for循环

for(初始值;条件;步长){

循环体 代码块

}


执行顺序和 while循环的相同 初始值也只执行一次


for循环的初始值变量 作用域和生命周期只在for循环的{}内生效

所以在for循环的初始值可以重复使用




break和continue 的使用

break 中断 : 如果在循环中碰到了break 表示 循环结束了

continue 继续 :跳过本次循环开始下一次循环

你可能感兴趣的:(java 学习)