码歌老薛带你0基础学习Java基础语法、标识符、关键词、字符集
一:第一个Java程序的注意点
1.1 代码示例
public class Demo{
public static void main(String[] args){
System.out.println("我的第一个Java程序");
}
}
1.2 总结问题
1: public --> 表示的是公共的、公开的。注意通过public修饰的class我们称
之为主类,一个.java文件只能包含一个主类,且文件的名称和类的名称是
一样的。
2:class --> 直译为班级,但是在java中是类的意思,注意,在java中单最
小单位就是类。
3:Demo --> 是当前类的名称,这里要注意,类名要和.java的文件名保
持一致,上文也提到过。
4:{} --> 代表的是一个块的概念,通过{}将一些代码段组合起来,有的
是类块,有的是方法块。
5:public static void main(String[] args){}
--> 代表的是主方法,程序经过主方法依次执行方法中的代码。注意这里
方法中的内容通过{}包裹起来。
7: [] --> 这里显示的中括号的意思是数组,注意以后看到[]代表数组出现
6: System.out.println(); --> 整个一行称之为一条语句,通过;结束
7:"" --> 代表字符串,就是由多个单一的字符组成的一个字符序列。通
过输出语句可以达到原样输出的目的。
8:注意点 --> 在java中的所有符号均为英文的符号,所有的括号都是成
对出现的,不论大括号、小括号,并且在这 些括号中都可以写东西。
二: 标识符
2.1 What? 定义
标识符就是一个具有特殊含义的符号,用来标注程序中的变量,方法,类等。
起名字要有意义,中国人起名尤其讲究,六忌一便于,六忌:一忌太易重名,二忌不辨性别,三忌谐音不雅,四忌充满稚气,五忌花枝招展,六忌一字多音;一便于:便于书写和认读,避免太生僻的字。
所以起名字也是一门学问。
2.2 Why? 产生背景
我们在使用程序过程当中,不可避免要找到一些资源定位,你比如说你想找到老薛,需要老薛的电话吧。
同理,我们也需要找到程序运行过程中的一些资源,所以通过标识符去定义这些资源。
2.3 Where?使用场景
当我们在编写类的时候,会在class后追加当前类的名称,会建议大家类名首字母大写等规范。
当我们编写变量的时候,要求变量的名称要小写等。
此时就需要学习使用标识符,起名字完全按照规范去做。
2.3 How ?
在Java中起名字的时候,需要注意遵守3个必要2个标准1个注意事项。
2.3.1 三个必要
- 必须以字母,*(下划线),(美元符号),数字结尾。
//给类起名字以下内容错误的是:
<1> Demo1 <2> 1Demo <3>_DEmo <4> $Demo</pre>
- 标识符不能使用Java中的关键词。
//给类起名字以下内容错误的是:
<1> class <2> 1class <3>_class <4> $class
- Java中严格区分大小写
//给类起名字以下内容错误的是:
<1> Public <2> Class <3>Static <4> class
PS:3个必要条件是必须要满足的,不然你写的程序在编译期间就会直接报错。错误都是System.error
2.3.2 两个标准
- 见名知意 (看到名称能够大致猜出意思)
//给类起名字以下内容标准的是:
<1> UserController <2> AA <3>Hi <4> Understand</pre>
-
驼峰原则(命名要大小写间隔)
- 给类起名时,注意首字母大写,其它每个单词首字母均大写
public class UserController{}</pre>
- 给变量起名字时,注意首字母小写,其它每个单词字母均大写
public class UserController{
int countSize;
}
- 给包起名字时,所有字母小写,单词之间通过
.
分割
package com.mage.basic
- 给常量起名字时,所有字母均大写,单词之间通过
下划线(_)
分割
public class UserDao{
public static final String MYSQL_URL="jdbc:mysql://localhost:3306/XXX";
}
- 给方法起名字时,首字母小写,其它每个单词均大写
public class UserController{
public void userLogin(){}
}
PS:2个标准不一定需要完全一致,程序不会由于你遵守标准报错,但是一般情况下我们推荐大家遵守标准。
2.3.3 一个注意事项
PS:Java是采用Unicode进行编码的,也导致其实我们在编写标识符的时候,严格意义上来说,是可以使用包括中文,英日文等文字的。但是一般情况下不建议大家使用中文。
//一下内容错误的是:
public class 用户控制器{
}
三: 关键词
3.1 What? (定义)
在刚刚标识符中,我们已经提及了标识符的概念。Java中的关键词,就是在整个Java中,存在一些Java
已经用作他用的词,这些词Java已经规定了其用法。我们称之为关键词。
3.2 Why?
在编程语言中总会出现一些已经定义好规则和用法的,而使用这些词作为比如上文提及的类名、变量名时,编译器可能就不知道是理解为Java本身赋予它的含义,还是仅仅只是作为一个名字了。
3.3 Where ?
常见的标识符包含一些内容,无需记忆。
3.3.1 简单分类:
用途 | 包含内容 |
---|---|
数据类型 | byte short int long float double char boolean class interface |
流程控制 | if else do while for switch case default break continue return try catch finally |
修饰符 | public protected private final void static strictfp abstract transient synchronized volatile native |
动作 | package import throw throws extends implements this super instanceof new |
保留字 | true false null goto const |
PS:注意,JDK10之后增强了类型推断,变量可以通过var去直接声明,但是var还是没有作为关键词。
四:字符集合
4.1 What?(定义)
人在和机器沟通的时候,需要让机器能够看懂,信息被发送之后变成了对应的二进制代码段。
而文字和二进制代码段需要一个中间的表,通过表进行检索变成对应的二进制段。
4.2 Why?
4.2.1 前置学习条件 (三个必要)
-
字库表:
一个相当于所有可读或者可显示字符的数据库,字库表决定了整个字符集能够展现表示的所有字符的范围
举例,相当于[字符集图]中的红色标注的内容。
-
编码字符集:
即用一个编码值
code point
来表示一个字符在字库中的位置。举例,相当于[字符集图]中的绿色标注的内容。
-
字符编码:
将编码字符集和实际存储数值之间的转换关系。一般来说都会直接将
code point
的值作为编码后的值直接存储。举例,例如在ASCII中
A
在表中排第65位,而编码后A
的数值是0100 0001
也即十进制的65的二进制转换结果。
4.3 How?
4.3.1 步骤思路
通过字符库,查找字符对应字符是否存在。
通过编码字符集,找到字符对应的代码点,比如A的代码点就是65。
通过指定的转换关系,缺点是否将代码点转为二进制进行存储,上述方式就是直接转为代码点然后再计算机进行读取。
4.3.2 常用工具中更改编码的方式
- Notepad++
- 文本文档
PS:另存为,然后选择指定的字符集合。
4.3.3 乱码产生原因
PS:简单而言,乱码产生的原因就是由于编码(自己书写时的字符集合)和解码(程序解析时)的字符集合不同而造成的,就像上面说的字典不统一。
4.4 思考题
问题:考虑为什么不直接使用codePoint,通过codePoint直接转为对应二进制直接存储。
五:老薛口诀时间:
java基础要记牢,不然报错咔咔响。
为了远离报错响,以下内容要记牢;
标识符,标注记忆起名用,3必2标1注意:
关键词,关键词,不记不背,老薛言;
若问啥是字符集,新华康熙来分辨。