【JAVA300】56-60 笔记
2017-09-08 11:14
246 查看
56_数组_StringBuilder和StringBuffer的使用_常用方法_方法链的实现_JDK源码分析.wmv
/**
*String不可变字符序列
*可变字符序列。StringBuilder(不安全,效率高)和StringBuffer(线程安全,效率低)
"
""/
public class Test01 {
public static void main(String[] args){
StringBuilder sb = new StringBuilder();//字符数组长度初始为16
StringBuilder sb1 = new StringBuilder(32);//字符数组长度初始为32
StringBuilder sb2= new StringBuilder("abcd");//字符数组长度初始为32,value[] = {'a','b','c','d','\0000','\0000'}
sb2.append("efg");//增加,字符相连
sb2.append(true).append(321).append("随便")//通过return this 实现方法链
}
}
/////
public StringBuilder append(String str){
super.append(str);
return this;//构成方法链
}
57_数组_StringBuilder和StringBuffer的使用_JDK源码分析内部机制.wmv
StringBuilder gh = new StringBulider("a");
for(int i = 0; i < 1000; i++){//长度超过16+1.
gh.append(i);
}
System.out.println(gh);
////
如果数组容量比长度大。则扩容length*2+2。然后arraysOf到新的数组
58_数组_StringBuilder和StringBuffer的使用_常用方法补充_常见面试题答法.wmv
/**
*delect()把数组某一个数值删除
*
*
**/
StringBuilder sb = new StringBuilder("abcdefghijklmnopqrstuvwxyz");
sb.delete(3,5);删除其中,包头不保尾
sb.delete(3,5).sb.delete(3,5);//可以连着删
System.out.println(sb);//abcdefghijklmnopqrstuvwxyz//红色为删除的
sb.reverse();//倒着遍历
StringBuffer sb2 = new StringBuffer("abcdefghijklmnopqrstuvwxyz");
//安全锁
59_数组_模拟ArrayList容器的底层实现_JDK源码分析ArrayList.wmv
stringbuilder:
char[] value
ArrayList:
Object[] elements
package cn.bjsxt.myCollection;
/**
*模拟实现JDK中提供的ArrayList类
*@author
*
*/
public class MyArrayList{
/**
* the value is used for object storage,
*/
Object[] value;
/**
* the size is the number of objects used,
*/
int size;
public MyArrayList(){
this(16);
//value = new Object[16];
}
public MyArrayList(int size){
value = new Object[size];
}
public void add(Object obj){
value[size] = obj;
size++;
if(size>=value.length){//扩容
int newCapacity = value.length*2;
Object[] newList = new Object[newCapacity];
//System.arrcopy
for(int i=0;i<value.length;i++){
newList[i] = value[i];
}
value = newList;
}
}
public Object get(int index){
if(index<0||index>size-1){
try{
throw new Exception();//抛出异常
}catch(Exception e){
e。printStackTrace();
}
}
return value[index];
}
public int indexOf(Object obj){
}
public static void main(String[] args){
MyArrayList List = new MyArrayList();
list.add("aaa");
list.add(new Human("高淇"));
list.add("bbbbb");
System.out.println(list.get(1));//显示 cn.bjsxt,myCollection.Human@42aab87f
Human h = (Human) list.get(1);
System.out.println(h.name);//显示 高淇
}
}
package cn.bjsxt.myCollection;
public class Human {
String name;
public Human(String name){
super();
this.name = name;
}
}
60_数组_多维数组_基本语法_内存分析.wmv
package cn.bjsxt.array2;
public class Test01 {
public static void main(String[] args){
int [][] a = { //一个框为一维,两个框为二维。。。
{1,2},
{3,4,0,9},
{5,6,7}
};
int [][] b = new int[3][]; //二维数值的另一种写法
b[0] = new int [10]; //因为只定义了第一维数组,所以可以在定义第二维数组
b[1] = new int [4];
b[2] = new int [3];
b[0][0] = 1;
b[0][1] = 2;
b[1][0] = 3;
b[1][1] = 4;
b[1][2] = 0;
b[1][3] = 9;
b[2][0] = 5;
b[2][1] = 6;
b[2][2] = 7;
System.out.println(a[2][2]);
}
}
/**
*String不可变字符序列
*可变字符序列。StringBuilder(不安全,效率高)和StringBuffer(线程安全,效率低)
"
""/
public class Test01 {
public static void main(String[] args){
StringBuilder sb = new StringBuilder();//字符数组长度初始为16
StringBuilder sb1 = new StringBuilder(32);//字符数组长度初始为32
StringBuilder sb2= new StringBuilder("abcd");//字符数组长度初始为32,value[] = {'a','b','c','d','\0000','\0000'}
sb2.append("efg");//增加,字符相连
sb2.append(true).append(321).append("随便")//通过return this 实现方法链
}
}
/////
public StringBuilder append(String str){
super.append(str);
return this;//构成方法链
}
57_数组_StringBuilder和StringBuffer的使用_JDK源码分析内部机制.wmv
StringBuilder gh = new StringBulider("a");
for(int i = 0; i < 1000; i++){//长度超过16+1.
gh.append(i);
}
System.out.println(gh);
////
如果数组容量比长度大。则扩容length*2+2。然后arraysOf到新的数组
58_数组_StringBuilder和StringBuffer的使用_常用方法补充_常见面试题答法.wmv
/**
*delect()把数组某一个数值删除
*
*
**/
StringBuilder sb = new StringBuilder("abcdefghijklmnopqrstuvwxyz");
sb.delete(3,5);删除其中,包头不保尾
sb.delete(3,5).sb.delete(3,5);//可以连着删
System.out.println(sb);//abcdefghijklmnopqrstuvwxyz//红色为删除的
sb.reverse();//倒着遍历
StringBuffer sb2 = new StringBuffer("abcdefghijklmnopqrstuvwxyz");
//安全锁
59_数组_模拟ArrayList容器的底层实现_JDK源码分析ArrayList.wmv
stringbuilder:
char[] value
ArrayList:
Object[] elements
package cn.bjsxt.myCollection;
/**
*模拟实现JDK中提供的ArrayList类
*@author
*
*/
public class MyArrayList{
/**
* the value is used for object storage,
*/
Object[] value;
/**
* the size is the number of objects used,
*/
int size;
public MyArrayList(){
this(16);
//value = new Object[16];
}
public MyArrayList(int size){
value = new Object[size];
}
public void add(Object obj){
value[size] = obj;
size++;
if(size>=value.length){//扩容
int newCapacity = value.length*2;
Object[] newList = new Object[newCapacity];
//System.arrcopy
for(int i=0;i<value.length;i++){
newList[i] = value[i];
}
value = newList;
}
}
public Object get(int index){
if(index<0||index>size-1){
try{
throw new Exception();//抛出异常
}catch(Exception e){
e。printStackTrace();
}
}
return value[index];
}
public int indexOf(Object obj){
}
public static void main(String[] args){
MyArrayList List = new MyArrayList();
list.add("aaa");
list.add(new Human("高淇"));
list.add("bbbbb");
System.out.println(list.get(1));//显示 cn.bjsxt,myCollection.Human@42aab87f
Human h = (Human) list.get(1);
System.out.println(h.name);//显示 高淇
}
}
package cn.bjsxt.myCollection;
public class Human {
String name;
public Human(String name){
super();
this.name = name;
}
}
60_数组_多维数组_基本语法_内存分析.wmv
package cn.bjsxt.array2;
public class Test01 {
public static void main(String[] args){
int [][] a = { //一个框为一维,两个框为二维。。。
{1,2},
{3,4,0,9},
{5,6,7}
};
int [][] b = new int[3][]; //二维数值的另一种写法
b[0] = new int [10]; //因为只定义了第一维数组,所以可以在定义第二维数组
b[1] = new int [4];
b[2] = new int [3];
b[0][0] = 1;
b[0][1] = 2;
b[1][0] = 3;
b[1][1] = 4;
b[1][2] = 0;
b[1][3] = 9;
b[2][0] = 5;
b[2][1] = 6;
b[2][2] = 7;
System.out.println(a[2][2]);
}
}
相关文章推荐
- (五)java深入java虚拟机及大数据笔记库(60)
- 【Java学习笔记】56:多线程基础回顾
- 剑指offer面试题 java解答56-60
- (五)java深入java虚拟机及大数据笔记库(56)
- Java基础知识强化之IO流笔记56:IO流练习之 登录注册IO版
- 【JAVA300】51-55 笔记
- 【JAVA300】11-15 笔记
- 【JAVA300】31-35 笔记
- 【JAVA300】41-45 笔记
- Java学习笔记(60)----------8张图理解Java
- Java基础知识强化之集合框架笔记60:Map集合之TreeMap(TreeMap<Student,String>)的案例
- 【JAVA300】6-10 笔记
- 【JAVA300】0-5 笔记
- Java学习笔记60. Java的异常处理机制
- 【JAVA300】16-20 笔记
- [JAVA学习笔记-56]Selector
- [JAVA学习笔记-60]ByteBuffer的分配方式的比较
- 【Java学习笔记】60:客户端PC-后端程序服务器-数据库服务器之间的通信demo
- 【JAVA300】46-50 笔记
- 【JAVA300】21-25 笔记