本周重点学习了字符序列,学习了字符串常用的API、正则表达式、字符串变量、日期时间的常用类,抽象类和抽象方法开了个头。
charAt(int index) | char | 返回指定索引处的字符 |
---|---|---|
codePointAt(int index) | int | 返回指定索引处的字符(Unicode代码点) |
compareTo(String anotherString) | int | 按字典顺序比较两个字符串 |
compareToIgnoreCase( String str) | int | 按字典顺序比较两个字符串,忽略大小写 |
concat(String str) | String | 将指定的字符串连接到该字符串的末尾 |
contains(CharSequenc e s) | boolean | 当且仅当此字符串包含指定的s值序列时才返回true |
endsWith(String suffix) | boolean | 测试此字符串是否以指定的后缀结尾 |
startsWith(String prefix) | boolean | 测试此字符串是否以指定的前缀开头 |
equals(Object anObject) | boolean | 比较字符串 |
equalsIgnoreCase(Str ing anotherString) | boolean | 比较字符串,忽略大小写 |
getBytes() | byte[] | 使用平台的默认字符集将此 String编码为字节序列,将结果存储到新的字节数组中 |
getBytes(Charset charset) | byte[] | 使用给定的charset将该String编码为字节序列,将结果存储到新的字节数组中 |
hashCode() | int | 返回此字符串的哈希码 |
indexOf(String str) | int | 返回指定字符第一次出现的字符串内的索引 |
indexOf(String str,int fromIndex) | int | 返回指定子串的第一次出现的字符串中的索引,从指定的索引开始 |
isEmpty() | boolean | 判断字符串是否是空串 |
lastIndexOf(String str) | int | 返回指定子字符串最后一次出现的字符串中的索引 |
lastIndexOf(String str, int fromIndex) | int | 返回指定子字符串的最后一次出现的字符串中的索引,从指定索引开始向后搜索 |
length() | int | 返回此字符串的长度 |
replace(char oldChar, char newChar) | String | 返回从替换所有出现的导致一个字符串oldChar在此字符串 newChar |
split(String regex) | String[] | 将此字符串分割为给定的 regular expression的匹配.使用特殊字符时需要转义 |
substring(int beginIndex) | String | 从指定索引开始(包括)截取字符串并返回 |
substring(int beginIndex, int endIndex) | String | 从指定索引开始(包括)到指定索引结束(不包括) |
toLowerCase() | String | 转换小写 |
toUpperCase() | String | 转换大写 |
trim() | String | 去掉首尾空格 |
toString() | String | 返回字符串 |
一种字符串处理的工具,用于查找、替换、匹配和提取文本中的模式。
正则表达式有一些特殊字符和普通字符组成,例如:\d{3}-\d{4}可以匹配“123-4567”的字符串,\d表示数字字符,{3}表示连续匹配3次,-表示匹配一个横线。
public final class StringBuffer
extends AbstractStringBuilder
implements java.io.Serializable, CharSequence
StringBuffer() | 构造一个没有字符的字符串缓冲区,初始容量为16个字符 |
---|---|
StringBuffer(int capacity) | 构造一个没有字符的字符串缓冲区和指定的初始容量 |
StringBuffer(String str) | 构造一个初始化为指定字符串内容的字符串缓冲区 |
StringBuffer(CharSequence seq) | 构造一个包含与指定的相同字符的字符串缓冲区CharSequence |
java
public final class StringBuilder
extends AbstractStringBuilder
implements java.io.Serializable, CharSequence
感觉比上周轻松了一丢丢,只是一丢丢丢丢……这周的内容更让我觉得一定要把基础学好,看到身边的同学编程能力都特别强,自己看到一些没有见过的题型还是没有思路,不过感觉自己比学校强了很多,起码现在能写出来一个完整的程序了,大写三年自己完整的做一个题的次数几乎没有,只要比以前的自己进步了就好。
跟身边的同学关系也很好,整体班级的气氛感觉很好,马老师上课也很幽默哈哈哈哈哈,没有什么代沟,每天的学习变得很有意思,就是一天到晚瞌睡的不行……
这周的考试没有上次考的好,唉,选择题错了十道,好几道跟实例化过程有关的都错了,前一天晚上跟三营的同学讨论绕的有点晕,简单题有点缺陷,编程第二题因为没看时间写的很乱。
1.switch语句表达式在JDK7.0后支持的数据结构有(String、char、byte、short、int、枚举)。
enum是枚举的意思!
2.
java
public class Demo{
private static int a;
public static void main(String[] args){
modify(a);
System.out.println(a);
}
public static void modify(int a){
a++;
}
}
输出的a是静态变量的a,默认初始值为0。
3.在类方法中可用this来调用本类的类方法:错误!
在Java中,类方法是通过类名直接调用的,而不是通过对象引用调用的。this和super都是对象。
4.
java
public class TestDog{
public static void main(String[] args){
Animal a=new Animal();
Animal b=new Dog();
a.move();
b.move();
b.mark();
}
}
class Animal{
public void move(){
System.out.println("动物可以移动");
}
}
class Dog extends Animal(){
public void move(){
System.out,println("狗可以跑和走");
}
public void bark(){
System.out.println("狗可以吠叫");
}
}
bark()是子类特有的,父类只能调用父类和子类共有的,不能调用子类扩展的。
5.
java
public static void main(String[] agrs){
String text="""
hello world
""";
String str="hello world";
System.out.println(text.equals.(str));
}
输出false;”””没有写在heillo world后面说明hello world后面有一个换行符,所以text的长度比str的长度长。
6.
java
public class Test{
public int x;
public static void main(String[] args){
System.out.println("Value is "+x);
}
}
非静态变量不能被静态方法引用。
7.
java
class Parent{
Parent(){
System.out.println("Parent constructor");
}
}
class Child extends Parent{
Child(){
System.out.println("Child constructor");
}
}
new Child();创建对象时自动调用Child()的构造方法,调用子类的构造方法要先调用父类的构造方法,所以先输出Parent constructor,再输出Child constructor。
8.
java
public static void main(String[] args){
Object obj=new int[]{1,2,3};
int[] someArray=(int)obj;
for(int i:someArray){
System.out.print(i+" ");
}
}
输出结果为:1 2 3。Object obj=new int[]{1,2,3};没有错误,Object后面不需要加[]。
将一个整型数组赋值给了一个Object
类型的变量obj
。在这种情况下,Object
是数组元素的最终父类,因此可以将一个数组对象赋值给Object
类型的变量。
9.请简述this和super的区别。
①this表示当前对象,super指代父类对象。
②this可以解决局部变量遮蔽成员变量的问题,super可以解决隐藏问题。
③this调用本类的所有属性和方法,super调用父类的属性和变量。
④this可以在任何类中使用,super只能出现在子类中。
⑤都只能在实例方法、构造方法或实例初始化器中使用。
⑥都可以表示构造方法的调用,并且只能在构造方法第一行,不能同时出现。如果子类构造中调用父类无参构造方法时,此时 super() 可以省略。
10.请简述重载和重写的区别。
在同一类中,存在方法名相同,参数列表不同(个数、类型或顺序不同)的方法互为重载。
在继承关系中,子类声明一个继承自父类的方法名相同、参数列表相同,返回值类型一致,访问修饰符相同或变大,抛出异常相同或缩小的方法称为重写。
重载是编译时多态,重写是运行时多态。
11.请简述类中可以声明哪些内容,哪些可以被继承,哪些不能被继承。
类中可以声明静态初始化器 、实例初始化器 、构造方法、成员变量 、成员方法 、成员类、成员接口
同包下,可以被继承的有非 private 的成员(变量、方法、成员类、成员接口等),不同包,可以被继承的有public 及 protected 修饰的成员(变量、方法、成员类、成员接口等)。
一定不能被继承的有静态初始化器、实例初始化器、构造方法、私有属性、私有方法、私有成员类、私有成员接口等。
powered by kaifamiao