小白学java-基础篇(类、对象、String、this)
2018-02-28 18:49
435 查看
1、封装类知识点:
构造方法:
2、匿名对象:
只在堆内存开辟空间,没有开辟栈内存存放引用地址;
格式:
只能使用一次,使用完立马等待垃圾回收,适合用于一次使用,且马上使用,代码量原则上要少于四行。
3、String类(比较特殊):
String赋值有两种:
常量池的拼接:
这是因为a、b在编译时就已经被确定了,而c是引用变量,不会在编译时就被确定;
一般建议用
4、String类的常用方法:
a、
b、
c、
d、
**!**a到d都是构造方法,需要实例化对象调用,即要用new关键字
e、
f、
g、
h、
!数组调用length是没有括号的
i、
!参数是字符串值时,别忘了加双引号
j、
!输出的结果是从字符串的首位开始计数
k、
l、
m、
!m方法的指定范围不包括endIndex
n、
o、
p、
q、
r、
s、
t、
u、
其他方法可以参考API文档。
5、this调用本类的构造方法时,必须放在代码块的首行,且必须要有无this的构造方法作为出口点。
set****(参数)用于设置变量的控制,无返回值;
get****()用于给外部类获取本类的变量值,一般无参,返回要获取的变量值。可以没有,就看外部类需不需要获取本类的变量值;
构造方法:
public 类名(){this.set****(****)}或者
public 类名(){this.****=****},用于把外部类的属性值赋给本类的变量。
2、匿名对象:
只在堆内存开辟空间,没有开辟栈内存存放引用地址;
格式:
new 类名(参数);
只能使用一次,使用完立马等待垃圾回收,适合用于一次使用,且马上使用,代码量原则上要少于四行。
3、String类(比较特殊):
String赋值有两种:
String 变量名=变量值和
String 变量名=new String(变量值),其实这里的变量名其实是一个对象;
String 变量名=变量值是在常量池中定义了该变量值,变量名指向常量池中的变量值;变量池不存在相同的字符串,即多个有相同变量值的变量名,都是指向同一个变量值地址;
String 变量名=new String(变量值),如果常量池没有该变量值的定义,会同时开辟两个空间,一个是常量池中定义了该变量值,一个是在堆内存存放该变量值,变量名指向堆内存的变量值;
常量池的拼接:
String str3 = "ABC"; String str4 = "ABC"; String str5 = "AB" + "C"; str3 == str4 //true str3 == str5 // true
String a = "ABC"; String b = "AB"; String c = b + "C"; System.out.println( a == c );//false
这是因为a、b在编译时就已经被确定了,而c是引用变量,不会在编译时就被确定;
一般建议用
String 变量名=变量值这个格式,开辟空间少,效率比构造器高。
4、String类的常用方法:
a、
public String(char[] value)将字符类型的数组转换成字符串。
char[] value = {"a","b","c","d"}; String str4 = new String(value);//相当于String str4 = new String("abcd");
b、
public String(char[] value,int offset,int count)将指定范围的数组变为字符串;(这里的下标是从0开始的)
c、
public String(byte[] values)将byte类型的数组转换成字符串,首先byte取值范围是-128~127,调用该方法时,先将byte数组中每个元素转换成对应的字符,然后拼接输出。
byte[] strb = {65,66}; String str6 = new String(strb);//相当于String str6 = new String("AB");
d、
public String(byte[] bytes,int offset,int length)
**!**a到d都是构造方法,需要实例化对象调用,即要用new关键字
e、
public char[] toCharArray()将字符串转变为字符数组;
String k = "abjht@"; char a[] = k.toCharArray();
f、
public char charAt(int index)将指定位置的字符串取出;
g、
public byte[] getBytes();
h、
public int length()返回字符串长度;
!数组调用length是没有括号的
i、
public int indexOf(String str)从头开始查找指定字符串的位置,如果不存在,返回-1,这个也可以用于判断字符串是否含有某个字符串;
!参数是字符串值时,别忘了加双引号
j、
public int indexOf(String str,int fromIndex)从指定位置开始查找指定字符串的位置;
!输出的结果是从字符串的首位开始计数
k、
public String trim()去掉左右空格,但是中间保留;
l、
public String substring(int beginIndex)从指定位置起,取出剩余的字符作为新的字符串返回;
m、
public String substring(int beginIndex, int endIndex)取出指定范围内的字符作为新的字符串返回;
!m方法的指定范围不包括endIndex
n、
public String[] split(String regex)按照指定的字符串进行拆分;(返回的是数组类型)
o、
public String toUpperCase()字符串中的字母全部变为大写;
p、
public String toLowerCase();
q、
public boolean startsWith(String prefix)判断是否以指定的字符串开头;
r、
public boolean endsWith(String suffix);
s、
public boolean equals(String str)判断两个字符串内容是否相等;(区分大小写,不判断引用地址)
t、
public boolean equalsIgnoreCase(String anotherString)不区分大小写判断两个字符串内容是否相等;
u、
public String replaceAll(String regex,String replacement)字符串替换;
其他方法可以参考API文档。
5、this调用本类的构造方法时,必须放在代码块的首行,且必须要有无this的构造方法作为出口点。
相关文章推荐
- [小白]java:日期对象转换用法(string,int)
- Java 多线程 (PART XII)synchronized(V) 非this 对象X和String常量池
- Java系列2 --- 你真的知道Java的String对象么?
- java子类对象在子类方法中使用父类属性 使用this和super都可以
- java面试题:String字面值对象和构造方法创建对象的区别
- 解析Java中的String对象的数据类型
- Java中利用MessageFormat对象实现类似C# string.Format方法格式化
- 小白学java-基础篇(Annotation)
- java中关于String对象的解析
- 【java】反射(二)——泛型集合(在ArrayList<Integer>中加入String对象)
- (原创)深入研究java对String字符串对象的创建以及管理
- 【Java学习笔记】String对象的不变性和intern()方法——基于Java SE8
- Java String对象的经典问题(new String())
- Java中String类型笔试题目,对象声明与创建及在内存中的存贮
- String的对象建立和Java的堆栈机制
- Java String对象问题
- 深入研究java对String字符串对象的创建以及管理
- js json对象转string java字符串转json 转java对象
- java中的String对象,你到底了解多少?
- java对象转化成String类型