【Java】备忘录

创建项目

  • 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
    
  • 创建类 / 接口:资源管理器 -> JAVA PROJECTA -> +

  • 说明

    • 文件名需要与类名一致
    • 类名的首字母大写,方法名的首字母小写,驼峰法命名

字符串

  • String 是不可变的,修改 String 时会产生新的 String 对象,然后将指针指向新的对象

    String s = "abc";  // s 是 String 类型的变量, "abc" 是 String 类型的对象
    s = "def";  // s 可以指向其他对象, 但是 "abc" 不能被修改
    
  • StringBuilderStringBuffer 是可变的,修改 StringBuilderStringBuffer 时,对对象本身进行操作,不会生成新的对象

  • 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):插入字符串,插入后 s.charAt(offset) 是被插入字符串的第一个字符
    • replace(int start, int end, String str):替换子字符串,start 被替换,end 不被替换

Number 和 Math

  • 基本数据类型:booleanbyteshortintlongcharfloatdouble
  • 包装类:BooleanByteShortIntegerLongCharacterFloatDouble
  • Math 的常用字段
    • Math.E:自然常数 e
    • Math.PI:圆周率 π
  • Math 的常用方法
    • Math.abs(a):计算绝对值
    • Math.ceil(a)Math.floor(a)Math.round(a):向下取整 / 向上取整 / 四舍五入
    • Math.exp(a):计算 ea
    • Math.log(a):计算 logea,可使用换底公式计算其他底数的对数 logxa=logealogex
    • Math.pow(a, b):计算 ab
    • Math.sqrt(a):计算 a
    • Math.max(a, b)Math.min(a, b):计算两数中的较大 / 小值
    • Math.toDegrees(a):弧度转化为角度,即 180aπ
    • Math.toRadians(a):角度转化为弧度,即 πa180

零碎知识点

  • 数组长度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

  • 使用科学计数法表示的数是 double 类型,如需使用 int 类型,需要强制转换,例如 (int)1e9


参考

posted @   空白4869  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示