软件: 一系列按照特定顺序组织的计算机数据和指令的集合。(程序+数据)
程序:完成指定功能的指令。
计算机语言:用于人与计算机之间通讯的语言。
机器语言:由一段0和1的二进制代码所组成的语言。
机器语言是直接由电脑CPU进行执行。
缺点:可读性、可移植性差、变成繁杂
有点:直接执行、速度快、资源占用少
汇编语言:
优点目标代码简短,占用内存少
计算机语言的发展:机器语言,汇编语言(低级语言),结构化语言,面向对象语言(高级语言)。
程序设计
1、分析问题
2、确定数据结构和算法
3、编制程序
4、调试问题
算法:指解决某一问题的方法和步骤。
程序中的错误分类:
语法错误 逻辑错误 运行错误
什么是JDK?什么是JRE?
JDK:java开发工具包
JRE: java运行环境
什么是.java文件?
字节码的中间码
什么是JVM?有什么作用?
虚拟机 字节码中间码解释为本地代码
java代码的执行流程
.java(编译)-----.class(解释)---本地代码
JVM的工作流程?
类加载器 字节码校验 解释器 JIT
JIT是什么?有什么作用?
即时编译器 提高编译为本地代码速度
class:类的标志
public:公共的(访问修饰符)
static:静态的(可选修饰符)
void:无(返回类型)
main:方法名(主方法)
(String[] args):参数列表
System.out.print("*"):输出,注意有两种形式
1、System.out.print():这种形式的在书写时必须在()中添加内容,并且 添加的内容不会和下一行换行
2、System.out.print():这种形式可以不书写内容,表示换行,如果有内容,则表示该内容之后换行
关键字
1 在JAVA中有三种关键字:关键字 保留字 标识符
a 什么是关键字:在语言中具有特殊含义,并不能被随意使用的单词。
有两个特殊都得关键字:const/goto
b 保留字:保留字具有一定的含义,但不是关键字。
只有三个:true/false/null
c 标识符:用户自定义单词,但需要按照规定书写(类名不区分大小写)
数据类型
Java中具有11种数据类型
基本数据类型(简单数据类型):整型 浮点型(实型) 字符型 布尔型
整型:整数 继续分为四种:字节型byte 短整形short 长整型 long 整型 int(默认)
浮点型:小数 继续分为两种:单精度型 (float 7位) 双精度型(默认)(double 14位)
字符型:字符 char(a,b,c。。。。。)字符也是用二进制进行存储的 A ----65 a----97 并且顺序是连续的。
布尔型:boolean true/false
复杂数据类型(引用数据类型)
String----字符串类型
变量和常量
java中存储值的方式:变量 常量
变量:在程序运行过程中可能发生变化的量。
在Java中变量如何定义呢?
变量的定义:数据类型 变量名 = 值;例如:int x = 10;
变量的书写有两种方式:1. 先声明后赋值 2. 声明时即赋值
变量的第一次赋值被称为初始化。
常量:在程序运行过程中不变的量。(不能改变)
例如:圆周率
常量的定义方式:final 数据类型 变量名称(全大写)=赋值;
final double PI = 3.14;
字符型变量在定义时有两种定义方式:1.存储数值 2.存储字符
1.存储数值:在存储数值时,会根据ASC码表找到对应的字符进行存储。
2.存储一个字符,在存储字符时,字符需要使用’’括起来。
如果非要将自动提升逆向运行-------需要强行转换类型
怎么强行转换类型呢?在该数值前加上要转的类型即可。
例如:(char)--强转符号
System.out.println((char)(g1+1))
什么是强转呢?-----会造成精度丢失的转换
什么是自转呢?-----不会造成精度丢失的转换
转义符
转义符的作用:将某个字符原本的意义进行替换。
在Java中字符的默认值均为Unicode码。
什么是流程 :程序运行的顺序
在JAVA中控制流程的手段有三种:
1、语句(条件语句/循环语句)
2、调用方法
3、返回类型
流程控制语句(条件语句+循环语句)
条件语句分为:if语句+switch语句
If语句的结构
If(表达式){
语句
}
表达式应该是一个 boolean类型。当上述表达式为true,则执行{}中的语句,反之为false时不执行{}中的语句
如果只有一个if被称为单分支if语句;包含一个if一个else被称为双分支if语句;包含一个if多个else if 被称为多分支语句。
else if 或者,给if语句提供其他判断条件。
在多分支和双分支中,如果选中了某一个条件,则其他条件的语句不会再执行了。
在多分支中,判断从上往下进行判断。
If语句嵌套,在if语句中的{}里也可以出现if
Switch选择
Switch语句的结构
Switch(选项){ ---选项可以是表达式,可以是变量、常量等值
Case 1: ---case表示选项,选项和选择的数据类型一致即可,当然是常量
Case 2: ---一般情况下switch中会有多个case语句,当传入选择时,会在 case中寻找与选择值选择值相同的选项进行运行,知道switch结束
}
Break ---表示结束当前switch语句或者当前循环
Default ---表示默认选项
在switch的小括号中可以是 int 型、byte型、String型、short型、枚举型
循环语句
循环也就是重复
循环中最重要的--就是找到循环的是什么(找到重复的内容)
循环语句:1、for 循环 2、while 循环 3、do……while 循环
for 循环:
For(表达式1;表达式2;表达式3;){
语句;
}
表达式1:起始赋值
表达式2:能够执行的依据
表达式3:循环变量的变化情况(可以增加,也可以减少)
三个表达式告知了循环的次数
语句:重复的事情
作用域 : 该内容可以使用范围(该范围是包含他的{}之间,并且在使用之前)
执行顺序:表达式1 ;表达式2;语句;表达式3;表达式2;语句……
死循环-----无限循环
While循环
结构:表达式1
while(表达式2){
语句
表达式3
}
do while 循环
结构:
表达式1
do {
语句
表达式3
}while(表达式2);
do 。。。While 循环的表达式2后面会有分号(;)
While 、for 循环有可能一次都不会执行循环体,但是do。。。While至少执行一次
Continue关键字
结束当前循环,进入下一次循环
Break 关键字
直接结束循环,跳出程序
Break既可以在switch中使用,也可以在循环中使用,所以一个break只会跳出一个switch循环。 contiune只能在循环中使用
嵌套循环语句
在一个循环语句中还有一个循环语句,并且作为其循环体存在,被称为双重循环。
什么是数组
1、数据类型一致2、长度固定不变3、连续的内存空间
为了用数组中的数据,在每一个区域都起了一个标记(下标 索引)以方便使用
下标从0开始直到数组的最大长度-1
数组如何使用元素?
数组名称[下标]
数组的书写方式:
例:定义一个长度为5的int型数组 int[] a = new int [5];
Int [] --数组的数据类型 a是数组名称 = new int[5]; 告诉数组的长度
如何存值
使用数组的某一个框----例 : a[0] 表示第一个框
A[0]=1; 数组名称[下标] -- 找出的是第一个元素
如何使用-----和赋值时一样
即使数组的元素没有赋值,单同样会有默认值。
下标可以是:字面量 变量 常量 表达式
下标必须是整数
如果在使用元素时不小心使用了不在范围中的下标,则会出现:Java.lang.ArrayIndexOutOfBoundsException--------数组下标越界异常 如果要获得某一个数组的长度,则可以使用--数组名.length
数组的定义方式2:
如果在定义数组时就知道有哪些值,则使用第二种
Int[] a ={ 1,2,3,4,5,6,7,8,9,.......};
第三种数组定义方式:
Int [] a = new int []{ 1,2,3,4,5,6,7,8,9.....};
可以使用数组名称.length表示数组的长度
随机数
Math.random()产生一个随机数 >=0&&<1
取值范围
a~b
(b-a+1)+a