Java学习笔记

Java学习笔记

标签: Java


Static关键字的作用

类中static修饰的成员方法或者属性将为所有类的对象公用,而不是以每个对象而独立的。即static修饰的成员属于类而不是属于对象,所有只可用类名.成员来访问静态成员。(不能依赖任何实例)
静态方法不能调用实例方法或属性(可以调用其他静态方法或属性),实例方法能调用静态方法或属性。
例如

Arrays.toString([数组名]);
常量:不能修改的变量final
  1. 程序中直接写的数字
  2. 定义变量时使用final修饰,则该变量不能修改
    例如
final static double pi = 3.141592653589793246;//常量,公共值
对象的构造与构造方法

构造是指使用new创建对象的过程,new实际上调用了一个特殊的方法–构造方法,分隐式构造和显式构造。

特殊的类:枚举

约束某个数据的可选值只能为几个备选项。

例如:

//把 public class 这种类的申明方式中class变成enum

public enum GenderEnum{
    Male,Female,Unknown
}
public class StudentInfo{
    GenderEnum gender; //用枚举作为属性的数据类型,实现了属性gender的值的可选项的约束(只能选Male或Female或Unknown)
    StudentInfo huahua = new StudentInfo();
    huahua.gender = GenderEnum.Female;
}
变量的作用域

变量的有效范围:Java中的变量在哪个大括号中定义就在哪个大括号中有效。

创建字符串的方式
String str = "我是一个字符串";//直接使用内容创建字符串,语法为双引号
//String是一个类,创建字符串也可以使用new
String str1 = new String();//创建了一个空字符串,调用了String类的无参构造函数
String str2 = new String("通过有参构造函数创建");//使用一个字符串内容创建另一个字符串
String str3 = String.valueOf(3.14);//使用String的valueOf静态方法将任意其他类型数据转为字符串
char[] chars = {'你','好'};
String str4 = new String(chars); //通过字符数组(char[])或字节数组(byte[])来创建

字符串的基本API
String str1 = " Hello world! ";
str1.length()//计算字符串长度(一个汉字长度也是1)
String str2 = str1.toUpperCase();//字符串中的所有英文字母转成大写
String str3 = str1.toLowerCase();//英文字母转成小写
System.out.print("%s %s",str2,str3);
str1.isEmpty()//判断字符串为不为空,内容是空格,这时字符串不为空,即方法判断结果是false
str1.trim()//修剪字符串,也就是去除字符串前后的空格,字符串中间的空格不会去除
str1.endsWith("world! ")//判断字符串是不是以给定的字符串结尾
str1.startsWith(" Hello")//判断字符串是不是以给定的字符串开头
str1.contains("H")//判断字符串是不是包含某个字符(字符串)
//判断一个邮箱地址格式是否有效
String email = "451825688@qq.com";
//indexOf()方法用来查找某个内容在字符串中是否存在
int indexnum = email.indexOf('@');//返回字符串中第一个找到的@的字符的索引,如果没找到会返回-1
//indexOf(要查找的内容,从哪里开始找)
int index82 = email.indexOf('8',6);//从email字符串中索引是6的位置开始查找字符8
lastIndexOf()方法是从字符串后面开始找,返回倒数第一个匹配字符的索引值

字符串截取:substring(index1,index2)方法的两个参数分别为开始取的索引和终止取的索引,但是不包含终止索引位置的字符。
如果是截取到字符串末尾,则只需要写从哪里开始就可以,index2参数不写。

str1.replace('书','酥')//字符串替换方法,指将str1中的‘书’这个字符替换成‘酥’

//拆分方法split(),按照某种指定标准将字符串拆开
String strsplit = "this class is very useful";
String[] words = strsplit.split(" ");//将字符内容依据空格来拆分
System.out.print(Arrays.toString(words));// [this, class, is, very, useful]
strsplit.split("[ .,?!]");//指依据空格,句号,逗号,问号和感叹号来拆分字符串

StringBuffer sb = new StringBuffer();//创建一个空的可变字符串
此种字符串适合修改,因为StringBuffer创建的字符串永远是只有一个对象,
字符串内容随修改而改变。String定义的字符串是不可变的,修改字符串时,
会新增新的字符串对象,原先创建的不会受影响。
StringBuilder方法与StringBuffer方法作用一样,唯一区别是StringBuilder是线程不安全的。
StringBuffer其他方法
StringBuffer sbb = new StringBuffer("this is a cat");
sbb.insert(9," big");//从索引是9的位置插入“ big”
System.out.println(sbb);//打印出插入后的sbb
sbb.delete(10,13);//从索引是10的位置开始删除字符,一直删除到索引是13 的位置
sbb.reverse();//把整个字符串反转,即"tac a si siht"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值