计算机底层中的数据全部采用二进制表示,他只包含0、1两个数,逢二进一,比如二进制中:1+1 = 10,表示十进制中的2。二进制中,每一个1或者0,叫做一个bit,也叫比特、位。
不同进制之间的转换方法
字节是常见的计算机中最小最小存储单元,计算机存储任何数据都是以字节的形式存储。
一个字节(1 byte 或者 1B):8个bit 0000-0000 表示为一个字节
3、常用DOS命令 启动:Win+R相关单位换算
● 8 bit = 1 Byte
● 1024 Byte = 1 KB
● 1024 KB = 1 MB
● 1024 MB = 1 GB
● 1024 GB = 1 TB
输入cmd运行可以打开命令窗口
在该窗口可以通过各种命令操作计算机
| 命令 | 作用 |
|---|---|
| Win+R | 启动 ,输入cmd后回车 |
| 盘符名称 | 切换盘符 |
| cd 文件夹名 | 进入文件夹 |
| cd 文件夹1文件夹2文件夹3 | 进入多级文件夹 |
| cd .. | 返回上一级文件夹 |
| cd | 直接回到根目录 |
| dir | 查看当前内容 |
| cls | 清屛 |
| exit | 退出 |
其他常用cmd操作命令后面补充在这里
4、Java开发环境搭建 4.1、Java虚拟机——JVM● JVM:运行所有Java程序的假想计算机,是Java程序运行的环境,编写的Java代码都运行在JVM上。不同的操作系统有不同版本的虚拟机,比如Windows有win版的虚拟机,而Linux有lin版的虚拟机,Mac有mac版的虚拟机。
● 跨平台:用Java编写的软件可以运行在任何操作系统上,这个特性叫做Java语言的跨平台特性,是Java语言的优势,编写的Java程序运行在JVM上,而JVM运行在操作系统上,JVM相当于起到在不同平台上翻译Java的作用,这使得Java具备了跨平台的特性。
4.2、JRE和JDK● JRE - Java程序的运行环境:包含JVM和运行时所需要的核心类库。
● JDK - Java程序开发工具包:包含JRE和开发人员使用的工具(包括编译器)。
正文运行Java程序只需安装JRE,而开发Java程序必须安装JDK。
Java的注释语法和C语言一样
Java主函数的框架:
//这里file_name是该Java代码所在的文件名
public class file_name{//public class后面代表定义一个类的名称,类是Java当中所有源代码的基本组织单位
//下面这一行是主函数的固定写法,相当于C语言int main(),String[]代表String类,args代表字符串数组
public static void main(String[] args){//不要返回值就用void,需要返回值就改为返回类型对应的
//执行的代码
system.out.println("Hello World!");
}
}
一、语法基础
前言:关键字、标识符、保留字
关键字:Java语言中已经赋予了特定含义的字符
标识符:用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有效字符序列
保留字:Java目前版本中尚未使用,但以后版本可能会作为关键字使用的字符
1、48个关键字:
abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while
关键字具体分类说明后续补在这里
2、2个保留字:goto、const
3、3个特殊直接量:true、false、null
标识符类、方法、变量等自己起的名字,都叫标识符
命名规则:
● 可以包含英文字母(大小写)、数字、$(美元符号)、_(下划线)。
● 不能以数字开头
● 不能是关键字
命名规范
1、 常量● 类名:采用大驼峰式,首字母大写,后面每个单词首字母大写,例:HelloWorld
● 变量名:采用小驼峰式,首字母小写,后面每个单词首字母大写,例:helloWorld
● 方法名: 同变量名规范,采用小驼峰式
程序运行期间,内容固定不变的量
| 分类 | 说明 |
|---|---|
| 字符串常量 | 使用双引号引起来的部分,其中字符数量不限,例:“asd454bc” 、“A” |
| 字符常量 | 单引号引起来的单个字符,例:“G”、“5”、“时”,单引号内必须有且只有一个字符,不可以没有 |
| 整数常量 | 无小数点的数,例:123/0、-5611 |
| 浮点数常量 | 就是小数,例:3.14 |
| 布尔常量 | true、false |
| 空常量 | null,代表没有任何数据 |
基本数据类型分类
● 基本数据类型:整型、浮点型、字符型、布尔型
● 引用数据类型:类、数组、接口
| 数据类型 | 关键字 | 内存占用 | 取值范围 |
|---|---|---|---|
| 字节型 | byte | 1B | -128 ~ 127 |
| 短整型 | short | 2B | -32768 ~ 32767 |
| 整型 | int(默认) | 4B | -2^31 ~ 2^31-1 |
| 长整型 | long | 8B | -2^63 ~ 2^63-1 |
| 单精度浮点数 | float | 4B | 1.4013E-45 ~ 3.4028E+38 |
| 双精度浮点数 | double(默认) | 8B | 4.9E-324 ~ 1.7977E+308 |
| 字符型 | char | 2B | 0 ~ 65535(对应ASCII码) |
| 布尔型 | boolean | 1B | true、false |
2.3、变量注意事项
1、字符串不是基本类型,而是引用类型
2、浮点数可能只是一个近似值,而不是精确值
3、数据范围与字节数不一定正相关
4、整数默认为int型,要是用long类型则要加上后缀L(或者l);浮点数默认double型,如果要是用float类型则要加上后缀F(或者f)。
内容在程序运行中中可以变化的量
创建、定义方式、赋值、修改值同C语言,注意赋给变量的值不要超过变量的取值范围。
float num1 = 500.2F; long num2 = 100000000L; int num3 = 10, num4 = 60;
注意:变量使用不能超过其作用域的范围
作用域:定义变量时,其直接所属的{}内部就是它的作用域
public class file_name{
public static void main(String[] args){
int num1 = 20;
System.out.printlb(num1);//20
{
int num2 = 30;
System.out.println(num1+num2);//50
//num2所属作用域,num1的作用域包括了该作用域,所以这里num1和num2都可以使用
}
System.out.println(num1);//20
System.out.println(num2);//报错
//num2在其作用域外无法使用
}
}
2.4、数据类型转换
自动类型转换(隐式)注意:
1、byte / short / char 三种类型都可以发生数学运算,在运算时,会被首先提升为int类型,然后再计算,得到一个int型数字
2、Java中,布尔类型不能发生任何数据类型转换,比如true不能转换为1,false不能转换为0
● 代码不需要手动进行特殊处理,由程序自动完成
● 被转换的数据的范围只能由小到大(与字节数不一定相关),比如由int转换为long,而不能long转换为int
long num1 = 314;//将右边的int型变量交给左边的long存储,实现314的类型由int变为long double num2 = 3.14F; float num3 = 314L;//num3 = 30.0强制类型转换(显式)
● 可以实现大范围数据类型转小范围类型
● 代码需要进行手动处理,不能依靠程序自动完成
● 手动处理格式与C语言相同:范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据
int num = (int) 314L;//将long型的314转换为int型的314,实现大范围转小范围
数据溢出
1、当待转换数据的逻辑范围没有超过转换后数据类型范围时,转换过程不会发生数据溢出,数据值不变
2、如果超过了,比如,将一个超过int范围的long型数据转换为int,转换过程中就会发生精度损失、数据溢出,这时候就会报错
1、整数的强制转换 int num = (int) 6000000000L; System.out.println(num);//1705032704,发生了精度损失、数据溢出 2、小数强制转换为整数,舍弃小数部分,不会四舍五入 int num1 = (int) 3.14; System.out.println(num1)//33、运算符
数值运算上和C语言一样
注意:
1、如果运算中有不同类型的数据,则结果的数据类型与范围大的数据类型一致
比如 int + long,结果就是 long 型
2、+在字符串String中,代表字符串的连接操作,任何数据类型和字符串连接时,结果都是字符串
1、字符串和字符串连接 String str1 = "Hi"; System.out.println(str + "World");//HiWorld 2、字符串和数值连接 System.out.println(str + 20);//Hi20 3、运算优先级从高到低排 ()--> * / -->++ -- --> + -
3、++、--自增、自减运算符(常量不能使用),与C语言相同,注意num++和++num的区别
以 ++ 为例说明区别:
单独使用时候,++num 和 num++ 是一样的
int num = 10; num++;//11 //或是 ++num;//11
混合使用时,num++ 和 ++num虽然最后num值相同,但是过程相反
int num = 10; int res = num++;//res = 10, num = 11 //或是 int res = ++num;//res = 11, num = 11
num++:先使用num,再num+1
++num:先num+1,再使用+1后的num
4、赋值运算符
+=、-=、*=、/=、%=:这几种常见的和C语言一样
其他赋值运算符:
注意按位运算均是在二进制下进行
| 操作符 | 说明 |
|---|---|
| << = | 左移位 |
| >> = | 右移位 |
| &= | 按位与 |
| ^= | 按位异或 |
| = | 按位或 |
5、比较运算符
>、<、>=、<=、!=、==:与C语言一样
6、逻辑运算符
&&、||、!:与C语言相同
7、位运算符
8、三元运算符(需要三个数据才能进行操作)—— ?:
注意必须同时保证表达式A和表达式B都符合 = 左侧数据类型的要求,否则会报错
格式:数据类型(也可不要,看具体情景) 变量名 = 判断条件 ? 表达式A : 表达式B int a = 10, b = 20; int c = a > b ? 1 : 0;//c = 0 int d = c == 0 ? 1 : 3.14;//报错 如果判断条件结果为true, 则三元表达式返回表达式A;如果为false,则返回表达式B4、方法(类似函数) 4.1、定义
格式:
修饰符 返回值类型 方法名称(参数类型1 参数名1, 参数类型2, 参数名2, ......){
//注意方法名的命名遵循小驼峰式
//方法体
return 返回值;//如果是void就不需要返回值,可以不写return,或者写return;
}
4.2、注意
● 不能在方法里定义另一个方法。
● 定义方法时可以传入形式参数、也可以不传参
● 调用同C语言。
同C语言
5.2、switch 6、循环结构 —— for 、while、do-while同C语言
Java增强for循环Java5 引入了一种主要用于数组的增强型 for 循环,格式如下:
for(声明语句 : 表达式){
//循环体
}
● 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
● 表达式:要访问的数组名,或者是返回值为数组的方法。



