JAVA学习笔记[1]

基础

  • Math静态工具类
  • 用关键字final表示常量,常量名使用全大写
    在Java中希望常量可以在一个类中的多个方法中使用,称为类常量,使用关键字static final 设置一个类常量。类常量的定义位于main方法外部,在同一个类的其他方法中也可以使用这个常量。

类型转换

  • 强制类型转换在圆括号中给出想要转换的目标类型
  • 如果运算符得到一个值吗,其类型与左侧操作数的类型不同,就会发生强制类型转换。例如,如果x是一个int,则以下语句:
x+=3.5

是合法的,将把x设置为(int)(x+3.5)

  • &&短路与,||短路或
  • 三元操作符condition?experssion1:experssion2
  • 枚举类型:变量的取值只在一个有限的集合内

字符串

  • String类的substring方法可以从一个较大的字符串提取一个子串。两个参数,左闭右开,右参数-左参数=子串长度
  • +拼接字符串,将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串
String all=String.join("/","S","M","L","XL");//拼接字符串
System.out.println(all);
输出: S/M/L/XL
  • 不可变字符串:由于不能修改JAVA字符串中的字符,所以在JAVA文档中将String类对象成为不可变字符串。各种字符串存放在公共的存储池中。字符串变量指向存储池中相应的位置。如果复制一个字符串变量,原始字符串与复制的字符串共享相同的字符。
  • 检查字符串是否相等:equals方法检测两个字符串是否相等,s.equals(t),s与t可以是字符串变量也可以是字符串字面量。若不区分大小写equalsIgnoreCase方法。==判断两个字符串是否放置在用一个位置上。
  • 空串与Null串:空串长度为0,if(str.length() == 0)或if(str.equals(""))
    Null串:没有对象关联if(str==null)
    同时判断if(str!=null&&str.length()!=0)

常用String API

  • char charAt(int index)
    返回给定位置的代码单元。除非对底层的代码单元感兴趣,否则不需要调用这个方法
  • int codePointAt(int index)
    返回从给定位置开始的码点
  • int offsetByCodePoints(int starIndex,int cpCount)
    返回从startIndex代码点开始,位移cpCount后的码点索引。
  • int compareTo (String other)
    按照字典顺序,如果字符串位于other之前,返回一个负数;如果字符串位于other之后,返回一个正数;如果两个字符串相等,返回0。
  • IntStream codePoints()
    将这个字符串的码点作为一个流返回。调用toArry将它们放在一个数组中。
  • new String(int [] codePoints,int offset,int count)
    用数组中从offset开始的count个码点构造一个字符串。
  • boolean equals(Object other)
    如果字符串与other相等,返回true。
  • boolean equalsIgnoreCase(String other)
    如果字符串与other相等(忽略大小写)返回true
  • boolean startsWith(String prefix)
  • boolean endsWith(String suffix)
    如果字符串以suffix开头或结尾,返回true。
  • int indexOf(String str)
  • int indexOf(String str,int fromIndex)
  • int indexOf(int cp)
  • int indexOf(int cp,int fromIndex)
    返回与字符串str或代码点cp匹配的第一个字串的开始位置。这个位置从索引0或fromIndex开始计算。如果在原始串中不存在str,返回-1。
  • int lastIndexOf(String str)
  • int lastindexOf(String str,int fromIndex)
  • int lastindexOf(int cp)
  • int lastindexOf(int cp,int fromIndex)
    返回与字符串str或代码点cp匹配的最后一个字串的开始位置。这个位置从原始串尾端或fromIndex开始计算。
  • int length()
    返回字符串的长度。
  • int codePointCount(int starIndex,int endIndex)
    返回startIndex和endIndex-1之间的代码点数量。没有配对的代用字符将计入代码点。
  • String replace(CharSequence oldString,CharSequence newString)
    返回一个新字符串,这个字符串用newString代替原始字符串中所有的oldString。可以用String或StringBulider对象作为CharSequence参数。
  • String substring(int beginIndex)
  • String substring(int beginIndex,int endIndex)
    返回一个字符串。这个字符串包含原始字符串中从beginIndex到串尾或endIndex-1的所有代码单元。
  • String toLowerCase()
  • String toUpperCase()
    返回一个新字符串,这个字符串将原始字符串中的大写字母改成小写,或者将原始字符串中的小写改成大写
  • String trim()
    返回一个新字符串。这个字符串将删除了原始字符串头部和尾部的空格。
  • String join(CharSequence delimiter,CharSequence…elements)
    返回一个新字符串,用给定的钉界符连接所有元素。
  • String concat(String str)
    将指定字符串连接到此字符串的结尾。

构建字符串

高效拼接字符串StringBulider

	 	StringBuilder bulider=new StringBuilder();
        bulider.append('a');
        bulider.append("bcd");
        String bul=bulider.toString();
        System.out.println(bul);
        //输出abcd

常用API:

  • StringBulider()
    构造一个空的字符串构建器
  • int length()
    返回构建器或缓冲器中的代码单元数量。
  • StringBulider append(String str)
    追加一个字符串并返回this
  • StringBulider append(char c)
    追加一个代码单元并返回this
  • StringBulider appendCodePoint(int cp)
    追加一个代码点,并将其转换为一个或两个代码单元并返回this
  • void setCharAt(int i, char c)
    将第i个代码单元设置为c
  • StringBulider insert(int offset, char c)
    在offset位置插入一个代码单元并返回this
  • StringBulider delete(int startIndex,int endIndex)
    删除偏移量从startIndex到-endIndex-1的代码单元并返回this
  • String toString()
    返回一个与构建器或缓冲器内容相同的字符串。

Scanner

  • Scanner (InputStream in)
    用给定的输入流创建一个Scanner对象。
  • String nextline()
    读取输入的下一行内容
  • String next()
    读取输入的下一个单词(以空格作为分隔符)
  • Int nextInt()
  • double nextDouble()
    读取并转换下一个表示整数或浮点数的字符序列
  • boolean hasNext()
    检测输入中是否还有其他单词
  • boolean hasNextInt()
  • boolean hadNextDouble()
    检测是否还有表示整数或浮点数的下一个字符序列

控制流程

  • case的标签可以是:

    • 类型为char byte short int的常量表达式
    • 枚举类型
    • 从Javase7开始还可以是字符串字面量
  • java提供了一种带标签的break语句,可以将标签应用到任何语句中,if或者块语句:

label:
{
	...
	if(condition) break label;//exits block
	
}//jumps here when the break statement executes

大数值

java.math包中两个类:BigIntegerBigDecimal这两个类可以处理包含任意长度数字序列的数值。
不能使用运算符处理大数值(java不提供运算符重载),使用add和multiply方法。
API
大数值API

数组

  • 增强for循环:循环的目标是一个数组或者实现了Iterable接口的类对象
    打印数组:Arrays类的toString方法,Arrays.toString().
  • 数组拷贝:两个变量引用同一个数组。拷贝数值:Arrays下的copyOf方法。
    两个参数,第一个是要拷贝的数值,第二个是新数组的长度,可多可少。
  • 命令行参数:String[] args表明main方法将接收一个字符串数组,也就是命令行参数。如:java Message -g cruel world
    arge数组包含:
    arge[0]="-g"
    arge[1]=“cruel”
    arge[2]=“world”
  • 数组排序:sort
    常用方法:Arrays
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值