首页 > 编程语言 >【Java】备忘录

【Java】备忘录

时间:2025-01-09 16:56:33浏览次数:1  
标签:Java String int StringBuilder 备忘录 StringBuffer 字符串 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):插入字符串,插入位置在 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)


参考

标签:Java,String,int,StringBuilder,备忘录,StringBuffer,字符串,java
From: https://www.cnblogs.com/wxy4869/p/18662453

相关文章

  • 【Javascript Day4】三元运算符及循环(while、do while)
    目录三元运算符循环while循环do{ }while()循环案例三元运算符//0:女 1:男     varsex=1;    //编号的转换变量,基于编号的值提供显示文本    vartemp="";    if(sex===0){      temp="女";   ......
  • JavaScript 正则
    一:正则概念       用于定义字符串规则,并检查字符串是否符合规则,合规的内容提取出来    二:正则创建方法方法1:构造函数            var变量=newRegExp('正则表达式','匹配模式');            参1: 规则  ......
  • org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException
    1、问题概述将一个springboot项目打成Jar包后,在本地使用java-jar命令启动服务,服务能启动成功,但是会有如下报错信息。说明:配置文件为外置配置文件,与jar处于同目录下启动命令如下:java-jarblade-gateway.jar--spring.config.location=application-dev.yml--serve......
  • java入门与基础语法
    java入门三高问题:高可用,高性能,高并发Java特性与优势:简单性,面向对象,可移植性,高性能,分布式,动态性,多线程,安全性,健壮性Java三大版本Javase(标准版),javame(嵌入式开发),javaee(企业级开发)jdk:java开发者工具包jre:java运行环境jvm:java虚拟机安装java环境(自行搜索网上其他博......
  • 身份证实名认证接口核验显示库无原因?Java身份认证API
    随着信息技术的日新月异,互联网已经深深融入了我们生活的方方面面。从购物、娱乐到工作学习,互联网平台的便捷性为我们的生活带来了前所未有的改变。然而,伴随着这种迅猛发展的是一些不可忽视的安全隐患。为了构建更加健康、安全、可信的网络环境,越来越多的互联网平台开始推行......
  • 【JavaScript编程】并行运行Promise
    举个例子,如果现在我们想要获取三个国家的基本信息,但是这个顺序是无所谓的;按照我们之前的学习的异步代码,如下:constget3Countries=asyncfunction(c1,c2,c3){try{const[data1]=awaitgetJSON(`https://restcountries.com/v2/name/${c1}`);const[data2]=......
  • 【JAVA编程】通过自定义注解与AOP防止接口重复提交实战
    引言在Web应用开发中,特别是在处理表单提交或API调用时,可能会遇到用户因网络延迟、按钮多次点击等原因导致的重复提交问题。为了解决这一问题,通常的做法是在前端禁用提交按钮,或者在后端使用唯一令牌(Token)机制来确保请求的唯一性。然而,这些方法往往需要针对每个可能的重复提交场景......
  • 基于JAVA+SSM的勤工助学系统
    基于JAVA+SSM的勤工助学系统前言✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......
  • 基于JAVA+SSM的电子病历管理系统
    基于JAVA+SSM的电子病历管理系统前言✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......
  • java.util.concurrent包中的Semaphore类
    目录解释使用例子:例子1:控制同时访问某个资源的线程数量例子2:模拟抢占停车位总结java.util.concurrent包中的Semaphore类解释java.util.concurrent包中的Semaphore类是一个用于控制对共享资源访问的同步辅助类。Semaphore(信号量)的主要作用是限制对某个特定资源的访问......