Java基础知识点梳理
摘要:
虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了学好java打下基础。
Java简介
java语言于1995年正式推出,最开始被命名为Oak语言,由James Gosling(詹姆斯·高斯林)在Sun Microsystems公司和同事共同研发,Microsystems如今已经被oracle收购。java语言具有以下特点:
- 简单性
- 面向对象
- 可移植性
- 安全性
- 健壮性
- 多线程
Java文件运行过程如下:
- 编写源代码,文件格式: .java
- 编译 .java文件 生成.class文件(二进制字节码文件)
- 运行 .class文件在JVM上(java虚拟机,支持多平台)
Java语言基础语法
注释
注释用于解释程序,增强可读性,java中注释有以下几种:
- 单行注释,语法如下:
// 单行注释
- 多行注释,语法如下:
/*
多行注释
多行注释
*/
- javadoc注释,是一种专业注释,可以被javadoc.exe工具解析提取生成帮助文档
/**
* javadoc注释
*/
标识符
标识符用于标识类名,方法名,变量名,接口名等,命名需要满足以下规则:
- 只能由"数字,字母(A-Z 或者 a-z),美元符($)、或者下划线(_)"组成
- 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
- 严格区分大小写,不能用关键字做标识符
java编程规范建议遵守驼峰命名法,类名和接口名首字母大写,变量和方法名首字母小写。Java采用unicode的编码方式,所以标识符也支持中文。
类的定义
java定义一个类用class关键字,有以下几点需要注意:
- 一个java源文件定义公开的类只能有一个,类名称必须和java源文件名称一致
- 一个java源文件可以编写多个class
- 每一个class都可以编写main方法
Java数据类型
基本数据类型
数据类型的作用是指导JVM在运行程序的时候给该数据分配多大的内存空间,Java提供了以下八种基础数据类型:
序号 | 分类 | 类型 | 介绍 | 实例 |
---|---|---|---|---|
01 | 整数型 | byte | 8位有符号整数(取值范围:-128~127) | byte a = 128; |
02 | 整数型 | short | 16位有符号整数(取值范围:-32768~32767) | short num = 1314; |
03 | 整数型 | int | 32位有符号整数 | int n = 131400; |
04 | 整数型 | long | 64位有符号整数 | long sum = 10000L; |
05 | 浮点型 | float | 单精度、32位、符合IEEE 754标准的浮点数 | float f1 = 13.14f; |
06 | 浮点型 | double | 双精度、64 位、符合IEEE 754标准的浮点数 | double d1 = 13.1452; |
07 | 布尔型 | boolean | 一位用于表示真假,只能取true 和 false; | boolean isMan = true; |
08 | 字符型 | char | 一个单一的 16 位 Unicode 字符(0~65535) | char firstLetter = ‘a’; |
整型表示方式
整型有三种表示方式,默认是十进制:
进制 | 表示方式 | 实例 |
---|---|---|
十进制 | 默认的表示方式,以非零数字开始 | int x = 10; // x = 10 |
八进制 | 以数字零"0"开始 | int x = 010; // x = 8 |
十六进制 | 以"0x"开始 | int x = 0x10; // x = 16 |
类型转换
类型转换有如下规则:
- 八种基本数据类型除了布尔类型之外,剩下的7种类型都可以互相转换
- 小容量向大容量转换,可以自动进行,容量从小到大排序为:
byte < short < int < long < float < double - 大容量数据转换成小容量,需要进行强制类型转换,强转会损失精度
- byte, short ,char 混合运算,各自转换成int;多种数据类型混合运算,转换成容量最大的类型再运算。
对于强制类型转换,将long强转成int的语法如下:
long k = 6475201314L;
int num = (int) k;
注意:大容量转换成小容量编译无法通过,比如下面代码无法编译:
byte b = 19;
b = b + 13; // 相当于直接把整型赋值给byte型,报错
b += 13; // 可以编译,等同于 b = (byte)(b + 13)
复合数据类型
字符串(String)
在Java中使用String 类来创建和操作字符串,初始化一个String的语法如下:
// 常用,用双引号直接创建
String testStr = "Wasting time is robbing oneself";
// 不常用,使用char数组创建
char[] helloArray = {
'h', 'e', 'l', 'l', 'o'};
String helloString = new String(helloArray);
由于字符串使用非常频繁,String类也提供了很多方法,下面介绍一些用的比较多的。
- 对字符串进行修改的常用方法有(包括格式化,大小写转换):
序号 | 方法 | 描述 |
---|---|---|
01 | String trim() | 返回字符串的副本,忽略前面空白和尾部空白。 |
02 | String intern() | 返回字符串对象的规范化表示形式。 |
03 | String toUpperCase() | 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 |
04 | String toUpperCase(Locale locale) | 使用给定的Locale规则将String中所有字符转换为大写。 |
05 | String toLowerCase() | 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。 |
06 | String toLowerCase(Locale locale) | 使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。 |
- 对字符串进行查找和替换的方法有:
序号 | 方法 | 描述 |
---|---|---|
01 | boolean startsWith(String str1) | 字符串是否以指定的字符串str1开始。 |
02 | boolean startsWith(String str1, int toffset) | 字符串指定索引开始的子字符串是否以指定字符串str1开始。 |
03 | boolean endsWith(String str1) | 测试此字符串是否以指定的字符串str1结束。 |
04 | int indexOf(String str1) | 返回指定子字符串str1在此字符串中第一次出现处的索引。 |
05 | int indexOf(String str1, int fromIndex) | 从指定的索引开始,返回指定子字符串str1在此字符串中第一次出现处的索引。 |
06 | int lastIndexOf(String str1)) | 返回指定子字符串str1在此字符串中最右边出现处的索引。 |
07 | int lastIndexOf(String str1, int fromIndex) | 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索 |
08 | boolean matches(String regex) | 测试此字符串是否匹配给定的正则表达式 |
09 | String replace(char oldChar, char newChar) | 返回一个用 newChar 替换此字符串中出现的所有 oldChar 得到的新字符串。 |
10 | String replaceAll(String regex, String replacement) | 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串 |
- 获取子字符串的常用方法有:
序号 | 方法 | 描述 |
---|---|---|
01 | String substring(int beginIndex) | 返回一个新的从指定索引开始的字符串。 |
02 | String substring(int beginIndex, int endIndex) | 返回从索引beginIndex开始到endIndex结束的新的字符串 |
03 | String[] split(String regex) | 根据给定正则表达式的匹配拆分此字符串。 |
04 | String[] split(String regex, int limit) | 根据匹配给定的正则表达式来拆分此字符串。 |
- 对字符串进行比较的方法有:
序号 | 方法 | 描述 |
---|---|---|
01 | int compareTo(String anotherString) | 按字典顺序比较两个字符串,相等时候返回0。 |
02 | int compareToIgnoreCase(String str) | 按字典顺序比较两个字符串,不考虑大小写 |
03 | boolean c |