创建项目
-
VSCode 安装 Extension Pack for Java 插件
-
查看命令面板
(Shift
+Command
+P
) ->输入 Create Java Project
->No build tools
->选择项目位置
->输入项目名称
-
项目结构
java ├── .vscode ├── bin # 编译后产生 ├── lib ├── src │ └── App.java └── README.md
-
App.java
文件内容public class App { public static void main(String[] args) throws Exception { System.out.println("Hello, World!"); } }
-
编译和运行 (使用插件):当源代码修改时,插件才会编译,否则直接运行
运行
->以非调试模式运行
(fn
+Ctrl
+F5
)右键
/右上角
->Run Java
main 函数上方
->Run
-
编译和运行 (命令行)
# 在 java 目录下执行 javac -d ./bin ./src/App.java java -cp ./bin App # 若项目结构更改为 `src/com/App.java` 并在 `App.java` 中添加 `package com;` javac -d ./bin ./src/com/App.java java -cp ./bin com.App
javac
和java
:【Java】面向对象课程笔记- 由于配置的
CLASSPATH
中只有系统文件夹, 所以需要使用-d
、-cp
-
创建类 / 接口:
资源管理器
->JAVA PROJECTA
->+
-
说明
- 文件名需要与类名一致
- 类名的首字母大写,方法名的首字母小写,驼峰法命名
字符串
-
String
是不可变的,修改String
时会产生新的String
对象,然后将指针指向新的对象String s = "abc"; // s 是 String 类型的变量, "abc" 是 String 类型的对象 s = "def"; // s 可以指向其他对象, 但是 "abc" 不能被修改
-
StringBuilder
和StringBuffer
是可变的,修改StringBuilder
和StringBuffer
时,对对象本身进行操作,不会生成新的对象 -
StringBuilder
不是线程安全的,StringBuffer
是线程安全的
String
String
的构造方法String()
String(String original)
String(StringBuffer buffer)
String(StringBuilder builder)
String (byte[] bytes, int offset, int length)
String(char[] value, int offset, int length)
String
的常用方法charAt(int index)
:返回给定索引处的字符length()
:返回此字符串的长度lines()
:返回从此字符串中提取的行的流isBlank()
:判断字符串是否仅包含空白字符isEmpty()
:判断字符串长度是否为零strip()
:删除所有前导和后缀空白字符toCharArray()
:返回字符数组toLowerCase()
、toUpperCase()
:将所有字符转小写 / 大写equals(Object anObject)
:判断是否与给定对象相等,值相等而非地址相等,如果使用==
则是比较引用地址是否相等format(String format, Object... args)
:返回格式化字符串compareTo(String str)
:按字典序比较两个字符串concat(String str)
:将给定的字符串连接到此字符串的末尾contains(CharSequence s)
:判断是否包含给定的字符系列substring(int beginIndex, int endIndex)
:返回子字符串,包含beginIndex
,不包含endIndex
replace(char oldChar, char newChar)
:用newChar
替换此字符串中出现的所有oldChar
startsWith(String prefix)
、endsWith(String suffix)
:判断否以给定的前缀开头 / 后缀结尾indexOf(int ch, int fromIndex)
、indexOf(String str, int fromIndex)
:从给定索引处开始搜索,返回给定字符 / 字符串第一次出现的此字符串中的索引lastIndexOf(int ch, int fromIndex)
、lastIndexOf(String str, int fromIndex)
:从给定索引处开始搜索,返回给定字符 / 字符串最后一次出现的此字符串中的索引
- 整数与字符串
Integer.parseInt(String s, int radix)
:将字符串解析为给定进制的带符号整数Integer.toString()
、Integer.toString(int i, int radix)
:返回给定的十进制数在进制转换后的字符串形式
StringBuilder / StringBuffer
StringBuilder
/StringBuffer
的构造方法StringBuffer()
、StringBuilder()
StringBuffer(int capacity)
、StringBuilder(int capacity)
StringBuffer(String str)
、StringBuilder(String str)
StringBuilder
/StringBuffer
的常用方法append(String s)
:将给定的字符串追加到此字符序列reverse()
: 将此字符序列反转delete(int start, int end)
:删除子字符串,start
被删除,end
不被删除insert(int offset, int i)
、insert(int offset, String str)
:插入字符串,插入位置在offset
之后replace(int start, int end, String str)
:替换子字符串,start
被替换,end
不被替换
零碎知识点
-
数组长度是
nums.length
;String
长度是s.length()
;集合框架
ArrayList
的长度是nums.size()
-
访问数组元素使用
nums[i]
;访问
String
元素使用s.charAt(i)
;访问集合框架
ArrayList
等元素使用nums.get(i)
-
初始化数组使用
int [] nums = new int[5]
不指定值,或int [] nums = new int[]{1, 2, 3, 4, 5}
指定值;初始化二维数组使用
int [][] nums = new int[26][26]
-
二维数组的行数是
nums.length
列数是nums[0].length
-
int
的范围是[-2147483648, 2147483647]
,为[0x80000000, 0x7fffffff]
,为[Integer.MIN_VALUE, Integer.MAX_VALUE]
,约为正负 2 的 31 次方,约为正负2e9
;long
的范围约为正负 2 的 63 次方,约为正负9e18
-
boolean
的默认值是false
-
两数取较大 / 较小值:
Math.max(a, b)
、Math.min(a, b)