JAVA最全最细基础知识点
计算机语言发展历史:
第一代(机器语言) 第二代(汇编语言) 第三代(高级语言),其中高级语言又分为 面对过程的语言(c语言)和面向对象的语言(Java语言)。所以我们说Java是一门面向对象的高级计算机语言。
Java语言的历史
Java语言是美国Sun公司(Stanford University Network)斯坦福大学网络公司 在1995年推出的计算机语言。2009年,Sun公司被甲骨文公司(Oracle)收购。Java之父:詹姆斯·高斯林(James Gosling)
Java语言的分类
JavaSE: Java 语言的(标准版),用于桌面应用的开发,是其他两个版本的基础。
JavaME: Java 语言的(小型版),用于嵌入式消费类电子设备,现在不用了。
JavaEE: Java 语言的(企业版),用于 Web 方向的网站开发。网站的简单理解= 网页+后台服务器
java语言特点:先编译再解释运行 (我们首先编写点java的源文件,然后通过java编译器进行编译成点class的字节码文件,再通过java解释器运行。)
跨平台
平台:指的是操作系统(Windows,Linux,Mac)
什么是跨平台性?
通过Java语言编写的应用程序在不同的系统平台上都可以运行。
Java跨平台原理
1.不同的硬件平台最终执行的是机器码,不同平台的机器码是不同的
2.java源程序(.java文件)先编译成字节码文件(.class文件),由于字节码文件格式独立,不面向任何具体的平台,只面向虚拟机;因此将字节码文件解释成对应平台机器码并执行;
3.Java虚拟机是可运行Java字节码文件的虚拟计算机,不同平台的虚拟机是不同的,但它们都提供了相同的接口。
4.Java具有一次编译,到处运行的特点.就是说编译后的.class可以跨平台运行,前提是该平台具有相应的Java虚拟机。
软件安装需要注意什么?
安装路径不要包含中文或者空格等特殊字符(使用纯英文目录)
为什么配置环境变量?
在任意目录下使用jdk的bin目录下的java相关命令。
public起到什么作用?
限制类名和文件名必须一致
class起到什么作用?
用来定义一个java类
入口方法起到什么作用?
程序的入口,jvm运行需要找入口方法
字节码文件,操作系统能直接执行吗?
不能,只有JVM认识字节码文件或者说 字节码文件是通过JVM来运行的。
JDK JRE JVM的关系
JDK(Java Development Kit):Java开发工具或者叫做Java开发环境,包含了JRE和开发工具,我们要开发Java程序必须安装JDK。
开发工具:主要有二个,javac.exe 编译工具 java.exe 运行工具
JRE(Java Runtime Environment):Java运行环境,包含了JVM和Java的核心类库(Java API)。我们如果只是单纯运行Java程序,只需要安装JRE即可。
jvm:虚拟机
类库:java类的仓库,里面装的是java提供的写好Java类,我们只需要拿来直接使用。
jdk下载的归档地址。(直接方便进入)
https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html
DOS命令(黑窗口)
DOS是微软在window操作系统之前推出的一款操作系统,在我们现在的window系统中一直保留。
进入DOS窗口的方式:
win + r打开运行窗口,输入cmd,回车。
快捷进入cmd窗口方式
操作 |
说明 |
盘符名称: |
盘符切换。E:回车,表示切换到E盘。 |
dir |
查看当前路径下的内容。 |
cd 目录 |
进入单级目录。cd itheima |
cd .. |
回退到上一级目录。 .. 表示上一级目录 |
cd 目录1\目录2... |
进入多级目录。cd itheima\JavaSE |
cd \ |
回退到盘符目录。 |
cls |
清屏。 |
exit |
退出命令提示符窗口。 |
tab |
补全命令 |
上下箭头 ↑ ↓ |
查找历史命令 |
为什么配置环境变量?
开发Java程序,需要使用JDK提供的开发工具(比如javac.exe、java.exe等命令),而这些工具在JDK的安装目录的bin目录下,如果不配置环境变量,那么这些命令只可以在该目录下执行。我们不可能把所有的java文件都放到JDK的bin目录下,所以配置环境变量的作用就是在任意目录下使用jdk的bin目录下的java相关命令。
步骤:
在系统变量中添加一个名称叫JAVA_HOME的环境变量,JAVA_HOME=jdk的安装目录
添加完JAVA_HOME之后,我们对path进行修改,在最前面加上%JAVA_HOME%\bin。
编译运行出错问题
非法字符问题。Java中的符号都是英文格式的。
英文的符号写成了中文,中文符号比英文符号胖一些。
中文乱码问题:
控制台打印输出中文你好,出现乱码。 为什么?编解码字符集不一致,我们在记事本中是UTF-8,在CMD中是GBK。
怎样解决?将编解码字符集设置成一致就行。我们在记事本中另存为,选择编码为ANSI即可。
ANSI: 表示跟随操作系统,我们现在是中文的操作系统,就相当于GBK。这样一来 编码和解码的字符集都是GBK了,
字符:就是一种符号,比如 abc 你好 。
字符集:就是字符的集合。
编码表 : 字符与二进制数值之间的一个映射关系,因为字符最终要转换成二进制数值在计算机中进行存储。
字符集的发展历史: ascii iso-8859-1 gbk utf-8
编码 :把字符转换成二进制数值的过程
解码 :把二进制数值转换成字符的过程
java类中可以写多个class ,但是最多只能有一个class 被定义为public, 例如下面的java文件名称则只能是Hello2.
注释:是一段对代码的解释说明文字,可以提高程序的可读性。
单行注释://
多行注释/* (文字)*/
文档注释
/**
*
*/
关键字是指被java语言赋予了特殊含义的英文单词。
关键字的特点:
关键字的字母全部小写。
常用的代码编辑器对关键字都有高亮显示,比如现在我们能看到的public、class、static等。
补充:
保留字:goto const 目前的java版本没有使用,但是后续的java版本有可能作为关键字使用,作为保留,我们定义标识符的时候不能使用。
常量:在程序运行过程中,其值不可以发生改变的量。
java中常量分为二类:一类是字面常量 一类是自定义常量 final
Java中的常量分类:
字符串常量 用双引号括起来的多个字符(可以包含0个、一个或多个),例如"a"、"abc"、"中国"等
整数常量 整数,例如:-10、0、88等
小数常量 小数,例如:-5.5、1.0、88.88等
字符常量 用单引号括起来的一个字符,例如:'a'、'5'、'B'、'中'等。有且仅有一个。
布尔常量 布尔值,表示真假,只有两个值true和false
空常量 一个特殊的值,空值,值为null
除空常量外,其他常量均可使用输出语句直接输出。
我们知道计算机中用来存储数据的设备有内存和硬盘,其中内存是用来对数据进行临时存储的,硬盘是用来对数据进行永久存储的。那它们的最小存储单位是“位(bit)”,我们又称之为“比特位”,通常用小写的字母”b”表示。
而计算机中最基本的存储单元叫“字节(byte)”,通常用大写字母”B”表示,字节是由连续的8个位组成。
Java中的基本数据类型: 四类八种
数据类型 |
关键字 |
内存占用(字节) |
取值范围 |
整数类型 |
byte |
1 |
-128~127 |
short |
2 |
-32768~32767 +- 3万 5位 |
|
int(默认) |
4 |
-2的31次方到2的31次方-1 +-10位 |
|
long |
8 |
-2的63次方到2的63次方-1 +-19位 |
|
小数类型 |
float |
4 |
负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到3.402823E+38 |
double(默认) |
8 |
负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308 |
|
字符类型 |
char |
2 |
0-65535 |
布尔类型 |
boolean |
1 |
true,false |
小数在底层是以科学计数法的形式来存储的,所以所表示取值范围要比整数的要大。
在java中整数默认是int类型,浮点数默认是double类型。
变量的定义格式?
(1)数据类型 变量名 = 数据值;
(2)数据类型 变量名;
变量名 = 初始化值;
变量的注意事项(理解)
在同一对花括号中,变量名不能重复。变量在使用之前,必须初始化(赋值)。
定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。;
定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。
什么是标识符?Class A 给class起的名就是标识符
标识符是指在代码中,给类、方法、变量、常量等取的名字。
标识符的规定?
由字母、数字、下划线“_”、美元符号“$”组成,
第一个字符不能是数字,不能使用java中的关键字作为标识符,不能有空格,区分大小写。
标识符的约定?
小驼峰式命名:变量名、方法名 int age = 10;
首字母小写,从第二个单词开始每个单词的首字母大写。firstName
大驼峰式命名:类名,接口名
每个单词的首字母都大写。
HelloWorld标识符的命名最好做到见名知意例如:maxAge、studentNumber等。
键盘录入的使用步骤?
1、导包
import Java.util.Scanner;
2、创建Scanner对象。(建立对象之后输入友好提示)
Scanner sc = new Scanner(System.in);
System.out.println("请输入。。。。"); //(友好提示)
3、接收数据
int 变量名 = sc.nextInt(); // (接收整数)
//每天都会更新,适合零基础小白自学,希望大家都可以坚持自己的梦想,不要放弃(昨晚也是掉了20根头发)