Java语言学习基础
01_计算机基础知识
01.01_计算机概述
计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机五类,较先进的计算机有生物计算机、光子计算机、量子计算机等。
计算机发明者约翰·冯·诺依曼。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩展到社会的各个领域,已形成了规模巨大的计算机产业,带动了全球范围的技术进步,由此引发了深刻的社会变革,计算机已遍及一般学校、企事业单位,进入寻常百姓家,成为信息社会中必不可少的工具。
01.02_硬件
硬件的功能是输入并存储程序和数据,以及执行程序把数据加工成可以利用的形式。从外观上来看,微机由主机箱和外部设备组成。主机箱内主要包括CPU、内存、主板、硬盘驱动器、光盘驱动器、各种扩展卡、连接线、电源等;外部设备包括鼠标、键盘等。
01.03_软件
软件是用户与计算机进行交流的界面,软件分为系统软件和应用软件。
系统软件:DOS,Windows,Linux,Unix,Mac,Android,ios
应用软件:微信,QQ,office
01.04_人机交互
软件的出现为人机交互提供了更大的便利。
人机交互的方式:
A:图形化界面方式:简单直观,易于接受;
B:命令行方式:在控制台输入指令,操纵计算机。需要记录命令,较为繁琐;
C:触摸式交互:当下应用广泛,简单操作,便捷;
D:语音识别:对话控制 简单,直接,智能。
01.05_计算机语言
A:机器语言:二进制码表示,计算机可直接识别和执行的一种机器指令的集合;
B:汇编语言:用助记符表示的面向机器的计算机语言。简化了编程过程;
C:高级语言:面向用户的语言,语意确定,规则明确,自然直观,易于学习。被广泛使用的高级语言有:BASIC,PASCAL,c,java等。
01.06_常见的DOS命令
win + r --> cmd–>回车
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7vhyWlGs-1594540821506)(C:\Users\Administrator\Desktop\20200712105717.jpg)]
A:d: 回车 盘符切换
B:dir(directory):列出当前目录下的文件以及文件夹
C:cd (change directory)改变指定目录(进入指定目录) 注意: 跨盘进入需要加一个 /d参数 例子: cd /d D:\software\cs1.6
D:cd… : 退回到上一级目录 回退多级目录 cd …/…/
E:cd: 退回到根目录
F:cls : (clear screen)清屏
G:exit : 退出dos命令行
H:ipconfig /all 查看本机IP 网卡物理地址等信息
I:calc 打开计算器
J:mspaint 打开画板
K:notepad 打开记事本!
L:hostname 获取计算机名称
M:getmac 获取物理网卡地址
md (make directory) : 创建目录
rd (remove directory): 删除目录
del (delete): 删除文件,删除一堆后缀名一样的文件*.txt
删除带内容的文件夹 不能直接删除 所以加参数 如下
rd + /s 文件夹名称 (询问是否删除)
rd + /q + /s 文件夹名称 (直接删除)
01.07_Java语言跨平台原理
通过Java语言编写的应用程序在不同的系统平台上都可以运行。只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。 由JVM来负责Java程序在该系统中的运行。JVM是不跨平台的,应为针对不同的操作系统,JAVA提供了不同的JVM,而各个操作系统的可执行文件是不同
01.08_JRE和JDK概述
JRE:Java Runtime Environment Java运行环境
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JDK:JDK(Java Development Kit Java开发工具包)
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。
JDK,JRE,JVM作用与联系:用jdk编写了一个java程序交由jre 运行起来 由jvm实现跨平台
02_简单程序编写测试
class {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
02.01_关键字
A:关键字:被java语言赋予特殊含义的单词。(boolean,int,for,do,public…)
B:特点:一律用小写字符标识
02.02_标识符
A:标识符:给类,接口,方法,变量,常量等起名字时用的字符序列
B:组成规则:英文大小写字母,数字字符,$和-
C:注意:标识符不能数字开头,不能是java中关键字,区分大小写
02.03_控制台运行java程序常见错误
A:关键字拼写错误运行时报错如下:
class a {
public static void mian(String[] args) {
System.out.println("Hello World!");
}
}
B:java程序对大小写有严格要求,大小写混淆会有以下报错:
class a {
public static void mian(String[] args) {
system.out.println("Hello World!");
}
}
C:语句结尾未带分号会有以下报错:
class a {
public static void mian(String[] args) {
System.out.println("Hello World!")
}
}
D:语句末尾出现汉语分号,报错非法字符:
class a {
public static void mian(String[] args) {
System.out.println("Hello World!");
}
}
E:类名与文件名不一样,编译后的.class文件名与类名一致
class a {
public static void mian(String[] args) {
System.out.println("Hello World!");
}
}
F:需将控制台打开至.java文件上一级目录,不然会出现以下报错:
03_常量
03.01_常量概述及使用
常量:在程序的执行过程中不发生改变的量
包括:
A:字面值常量:
- 符串常量 用双引号括起的内容
- 整数常量 所有整数
- 小数常量 所有小数
- 字符常量 用单引号括起的内容
- 布尔常量 只有true和false
- 空常量 null
输出字面值常量:
class Constant{
public static void main(String[] args) {
//输出各种字面值常量
System.out.println(100);
System.out.println(3.14);
System.out.println(true); //真
System.out.println(false);//假
System.out.println('a');
System.out.println('4');
System.out.println('1');
System.out.println('你');
System.out.println("Hello World!");
System.out.println("你好,世界");
}
}
B:自定义常量
03.02_各进制概述与转换
A:各进制表现形式:
|
二进制 |
八进制 |
十进制 |
十六进制 |
前缀 |
0b |
0 |
无 |
0x |
组成 |
1和0 |
0~7 |
0~9 |
0-9a-f |
B:任意进制转换为十进制
转换原理:位权展开法,n进制计数制中各位数字A为位权,数字符号所处的位置序号X为指数。实例如下:
各进制 |
过程 |
十进制 |
0b1010 |
1*2^3+1 *2^1 |
10 |
0 012 |
1x8+2x8^0 |
10 |
0x000A |
10x16^0 |
10 |
B:十进制转换为任意进制:
除基取余 直到商为0 余数反转。
以十进制10转换为二进制数为例:
- 10/2=5······0
- 5/2=2······1
- 2/2=1······0
- 1/2=0······1
此二进制数为:0b1010
其余进制转换均可以十进制为中介进行转换。
03.03_原码,反码及补码
A:正数原码反码补码均一样
B:负数,反码对其原码逐位取反,但符号位除外;补码在其反码最后一位加一
04_变量
变量:在程序执行的过程中,在某个范围内其值可以发生改变的量。
定义格式:数据类型 变量名 = 变量值;
04.01_数据类型
A:基本数据类型
整数型 |
字节数 |
范围 |
byte |
1 |
-128~ 127 |
short |
2 |
-2^15 ~ 2^15-1 |
int |
4 |
-2^31 ~ 2^31 -1 |
long |
8 |
-2^63 ~ 2^63 -1 |
浮点型 |
|
|
float |
4 |
|
double |
8 |
|
字符型 |
|
|
char |
2 |
0 ~ 2^16 |
布尔型 boolean
整数默认int,浮点数默认double
04.02_变量的使用
注意事项:
- 变量定义在某一大括号内,此内不可在定义另一同名变量。
- 没有初始化值不能直接使用
A:默认转换规则
- byte,short,char->int->long->float->double
- byte, short,char之间不能相互转换,参与运算首先转换为int类型
- boolean类型不可转换为其他类型
B:强制转换
强制转换格式:
目标数据类型 变量名=(目标数据类型)(被转换的数据);
强制转换可能存在损失精度的问题,例如:
class Noname1{
public static void main(String[] args) {
int a=200; //a=0b011001000
byte b=(byte)a;
//(byte)a=0b11001000(补码)
//0b11000111(反码)
//0b10111000(原码)=-56
System.out.println(b);
}
}
输出结果为:-56 , 原因如注释所示
05_字符运算及运算符使用
05.01_字符运算
根据ASCII码表:
- ‘0’ = 48;
- ‘a’ = 97;
- ‘A’ = 65;
当‘+’左右两边有一方不为字符串,’+'的作用为拼接字符。例如:
System.out.println("hello" + 'a' + 1);//helloa1
System.out.println('a' + 1 + "hello");//98hello
05.02_算术运算符基本用法
A:运算符:对常量和变量进行操作的符号称为运算符
B:分类:
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符
- 比较运算符:==,!=,<,>,<=,>=,instanceof
- 逻辑运算符
- 位运算符
- 三目运算符
++:自加。对原数据加一
–:自减。对原数据减一
注意:’++‘或’–'在前,先自加或自减再使用,其在后,则先使用后自加或自减。
如:
System.out.println("hello" + 'a' + 1);//helloa1
System.out.println('a' + 1 + "hello");//98hello
05.02_算术运算符基本用法
A:运算符:对常量和变量进行操作的符号称为运算符
B:分类:
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符
- 比较运算符:==,!=,<,>,<=,>=,instanceof
- 逻辑运算符
- 位运算符
- 三目运算符
++:自加。对原数据加一
–:自减。对原数据减一
注意:’++‘或’–'在前,先自加或自减再使用,其在后,则先使用后自加或自减。
关系运算符运算结果为boolean类型。