进制转换
-
位权
一个十进制数110,其中百位上的1表示1个10的2次幂,既100,十位的1表示1个10的1次幂,即10,个位的0表示0个10的0次幂,即0.
一个二进制数110,其中高位的1表示1个2的2次幂,即4,低位的1表示1个2的1次幂,即2,最低位0表示0个2的0次幂,即0。
一个八进制数110,其中高位的1表示1个8的2次幂,即64,低位的1表示1个8的一次幂,即8,最低位的0表示0个8的0次幂,即0。
一个十六进制数110,其中高位的1表示1个16的2次幂,即256,最低位的1表示1个16的1次幂,即16,最低位的0表示0个16的0次幂,即0.
可见,在数制中,各位数字所表示值的大小不仅与该数字本身的大小有关,还与该数字所在的位置有关,我们称这关系为数的位权
按权求和
- 2进制转10进制:
最终求得结果:(21.25)10
- 8进制转10进制:
最终求得结果:(198)10
- 16进制转10进制:
最终求得结果:(1a8)16=(424)10
倒数取余计算
- 10进制转2进制:
- 10进制转8进制:
- 10进制转16进制:
存储单位
计算机的最小存储单位是字节,计算机存储任何的数据,都是以字节的形式存储,右键点击文件属性可以查看文件的字节大小
基本的存储单位
- 位(bit):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位。
- 字节(Byte,B):计算机中数据的基本单位,每8位组成一个字节。各种信息在计算机中存储、处理至少需要一个字节。例如,一个ASCII码用一个字节表示,一个汉字用两个字节表示。
其他存储单位
在计算机各种存储介质的存储容量中,用户所接触到的存储单位不是位、字节和字,而是kb、mb、gb等,这些是基于字节换算的
1B=8bit
KB:1kb=1024b。早期用的软盘有360kb和720kb
MB:1MB=1024kb。早期微型机有128mb、256mb、512mb
GB:1GB=1024MB。早期微型机的硬盘有60GB、80GB
TB:1TB=1024GB。目前个人用的微型机存储容量也都能达到这个级别了,而作为服务器或者专门的计算机,不可缺少这么大的存储容量。
换算率约等于1000(1024),从大到小顺序为T、GB、MB、KB、B再小就是位了。
计算机存储单位一般用bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB……来表示,它们之间的关系是:
转换率 | 单位 |
一个二进制,0或1 | bit |
1B=8bit | B |
1MB=1024B | MB |
1GB=1024MB | GB |
1TB=1024GB | TB |
1PB=1024TB | PB |
1EB=1024PB | EB |
1ZB=1024EB | ZB |
1YB=1024ZB | YB |
1BB=1024YB | BB |
1NB=1024BB | NB |
1DB=1024NB | DB |
需要注意的是:计算机最小的存储单位虽然是位(bit),但是计算机的基本存储单位是字节,又名Byte,用大写字母B表示
Dos常用指令
命令 | 解释 |
盘符名: | 盘符切换 |
dir | 查看当前文件夹内容 |
cd 文件夹名 | 进入指定文件夹 |
cd.. | 返回上一级文件夹 |
cd\ | 退出到磁盘根目录 |
cls | 清屏 |
Java概述
什么是java
Java是1995年美国的Sun公司(Stanford University Network/斯坦福大学网络公司)推出的一门面向对象的高级编程语言
其他高级编程语言推出时间:
C:1972 年
C++:1983年
Python:1991年
PHP:1994~1995
Java的平台
Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发;
- JavaSE: 即J2SE,Java标准版,主要做一般的Java应用,比如:应用软件/QQ之类的通信软件等等.
- JavaEE: 即J2EE,主要做企业应用, 比如公司网站, 企业解决方案等;
- JavaME:即J2ME,主要面向嵌入式等设备应用的开发, 比如手机游戏等
JavaSE是基本,先学好了这个,以后,在根据自己的兴趣等,选JavaME或者JavaEE进行扩展, 就容易多了
搭建Java环境
Java虚拟机
我们编写的所有Java代码最终都是运行在Java虚拟机之上的,如图:
JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。
跨平台
任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性(“一次编写,处处运行”)。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
Tips:C语言程序与操作系统有关,不同的平台(Windows、Linux)对C语言做了不同程度的支持和拓展,而Java语言与操作系统无关,因为Java代码最终运行在JVM上;
JRE和JDK和JVM的关系
- JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具;
- JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需的核心类库;
- JVM(Java Virtual Machine ):是一款Java虚拟机,模拟Java运行时的一个平台,对内存分配,管理、线程调度等都有一定的管理;
- JDK是一个Java程序员的开发工具包,除了包含JRE之外,还提供有许多Java开发工具给Java程序员使用,如Javac、JMC、Jstack等
- JRE是一个Java的运行环境,除了包含JVM之外,还提供很多的一些JavaAPI类库,为Java程序提供很多功能,如果没有这些类库那么Java程序员需要完成这些功能就需要手动编写这些逻辑代码;
- JVM是一个Java虚拟机,Java程序(class文件)最终是运行在JVM上的,他更倾向于模拟一台真实的计算机,对内存的分配,回收,共享、线程调度等功能都具备一定的管理能力;在运行Java程序的同时调用JRE提供的一些类库,使得Java程序更加强大、方便;
编写Java程序
搭建java开发环境
准备一个jdk,复制到任意一个磁盘或文件夹内:
进入bin目录
复制当前磁盘目录:D:\jdk1.8.0_152\bin
配置环境变量
计算机--->右击--->属性
选择高级系统设置:
选择环境变量:
找到path变量,点击编辑:
在弹出的对话框选择"编辑文本"
粘贴前面复制的路径
测试Java环境
打开一个cmd窗口:输入javac指令,如果出现下图所示,代表搭建成功
如果出现下面这种则是搭建失败:
编写Java代码
Java开发环境搭建完成,可以开发Java程序了
新建一个后缀名是Java的文件:
编写下面代码
public class HelloWorld{
public static void main(String[] args){
System.out.println("2020-05-24:Hello World!!!");
}
}
文件名必须是 HelloWorld ,保证文件名和类的名字是一致的,注意大小写。每个字母和符号必须与示例代码一模一样。
这样第一个Java程序编写就完成了,但是这个文件是程序员编写,JVM是看不懂的,导致不能运行,因此必须将编写好的Java源文件,编译成Jvm可以看懂的字节码
编译Java程序
在DOS命令行中,进入java源文件的目录,使用javac命令编译
格式如下:
Javac.java源文件名.后缀名
如:Javac HelloWorld.java
运行:
编译和运行
- 编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们
所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。 - 运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了
关于main方法:main方法:称为主方法。写法是固定格式不可以更改。main方法是程序的入口点或起始点,无论我们编写多
少程序,JVM在运行的时候,都会从main方法这里开始执行。
关键字
关键字:Java已经定义好的单词,具有特殊含义。
- Java关键字词汇表:
标识符(名字)
- 标识符:是指在程序中,我们自己定义的名字。比如类的名字、方法的名字和变量的名字等等,都是标识符。
- HelloWorld案例中,出现的标识符有类名字 HelloWorld 。
- 命名规则:
硬性要求
- 标识符(名字)可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
- 标识符不能以数字开头。
- 标识符不能是关键字。
- 区分大小写。
- 命名规范:
软性建议
- 类名规范:每个单词首字母大写(大驼峰式)。
- 方法名和变量名规范: 第一个单词全小写,后面每个单词首字母大写(小驼峰式)。
- 包名规范:全部小写。
数据类型、常量、变量
5.1数据类型
Java的数据类型分为两大类:
- 基本数据类型:包括
整数 、 浮点数 、 字符 、 布尔
- 引用数据类型:包括
类 、 数组 、 接口
四类八种基本数据类型:
数据类型 | 关键字 | 内存占用 | 取值范围 |
字节型 | byte | 1个字节 | -128~127 |
短整型 | short | 2个字节 | -32768~32767 |
整型 | int(默认) | 4个字节 | -2147483648~2147483647 |
长整型 | long | 8个字节 | -2的63次方~2的63次方-1 |
单精度浮点数 | float | 4个字节 | 1.4013E-45~3.4028E+38 |
双精度浮点数 | double(默认) | 8个字节 | 4.9E-324~1.7977E+308 |
字符型 | char | 2个字节 | 0-65535 |
布尔类型 | boolean | 1个字节 | true,false |
Java中的默认类型:整数类型是 int 、浮点类型是 double;
常量
- 常量:是指在Java程序中固定不变的数据。
练习:输出各种类型的常量。
public class Demo01 {
public static void main(String[] args) {
// 输出整数常量
System.out.println(123);
// 输出小数常量
System.out.println(0.125);
// 输出字符常量
System.out.println('A');
// 输出布尔常量
System.out.println(true);
// 输出字符串常量
System.out.println("Hello Java");
}
}
发现出现错误;这个错误是一般是因为代码中含有中文字符,注释中的中文字符也算。由于使用cmd运行java程序的时候,系统默认的编码格式是gbk。
进行转码:
转码之后发现中文都出现乱码了:
转码之后中文会变成乱码,因此我们以后再进行转换之前最后先复制一份;
再次编译运行:
变量
- 变量:变量是内存中的一小块区域,其值可以在一定范围内变化
Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
变量的定义
变量定义的格式包括三个要素: 数据类型 、 变量名 、 数据值 。
练习:定义所有基本数据类型的变量,代码如下:
public class Demo02 {
public static void main(String[] args) {
//定义字节型变量
byte b = 100;
System.out.println(b);
//定义短整型变量
short s = 1000;
System.out.println(s);
//定义整型变量
int i = 123456;
System.out.println(i);
//定义长整型变量
long l = 12345678900L;
System.out.println(l);
//定义单精度浮点型变量
float f = 5.5F;
System.out.println(f);
//定义双精度浮点型变量
double d = 8.5D;
System.out.println(d);
//定义布尔型变量
boolean bool = false;
System.out.println(bool);
//定义字符型变量
char c = 'A';
System.out.println(c);
}
}
long类型:建议数据后加L表示。
float类型:建议数据后加F表示。
运行:
定义变量注意事项
- 定义的变量,不赋值不能使用。
- 同一个方法中变量名不能重复。
- 变量只在定义时的{}中有效。
public class Demo2 {
public static void main(String[] args) {
int a = 10;
System.out.println(a);
int b;
b = 20; // 变量在使用之前一定要赋值
System.out.println(b); // 错误: 可能尚未初始化变量b
// double a = 3.1; // 错误: 已在方法 main(String[])中定义了变量 a
// System.out.println(a);
double c = 3.1; // 错误: 已在方法 main(String[])中定义了变量 a
System.out.println(c);
{
int d = 40;
System.out.println(d);
}
// System.out.println(d); // 错误: 找不到符号
}
}
String类型
String类型是一种引用数据类型,用于存储字符串(多个字符),我们知道char类型只能存储单个字符,不能够存储多个字符,而String就是用于存储多个字符串的;
String类型使用:
public class Demo3 {
public static void main(String[] args) {
String str1="hello~";
String str2="你好啊~";
String str3="嘿嘿~";
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
}
}