基础复习:
public static void testSwitch(){
//在java7之前,switch不支持Sting 在java7之后加入了String,每个case都要跟个break,不然会继续执行
//int num = 2;
String num = "2";
switch (num){
case "jia":{
System.out.println("我是jia");
break;
}
case "2":{
System.out.println("我是2");
break;
}
case "3":{
System.out.println("我是3");
break;
}
case "4":{
System.out.println("我是4");
break;
}
default:{
System.out.println("我是default");
break;
}
}
}
//==和equals的区别,一个变量是有连个部分组成的(内存空间地址和空间的值),==是判断内存空间的地址是否一样,equals是看空间的值是否一样
public static void testEquals(){
String a = "1";
String b = "1";
if (b==a){
System.out.println("== YES");
}
if (b.equals(a)){
System.out.println("equals = YES");
}
//可变字符串
StringBuffer ss = new StringBuffer();
ss.append("dd");
ss.append("ff");
ss.append("gg");
System.out.println(ss);
//ArrayList 可以存储任何类型的项 && List<类型> 只可以存储指定类型的项
//List<>比ArrayList使用方便 && 因为在使用ArrayList内部的值时,必须强制转换才行,因为存放在ArrayList里的值都转换成了Object类型
//List是集合最大的父类,它包含了ArrayList
//List<String> list=new ArrayList<String>();这样的形式使得list这个对象可以有多种的存在形式
List<String >list = new ArrayList<>();
ArrayList arrayList = new ArrayList();
//list和arrayList PK map和HashMap,,其他他们的关系都是一样的,上面的说明也可以去解释map和hashMap
Map<String ,String >map = new HashMap<>();
map.put("1","11");
map.put("2","22");
System.out.println(map);
//JSONObject和map的区别(JSONObject的key和value可以是不同数据类型的值(最终都会被转化为object),而map则必须是指定数据类型的值)
JSONObject jsobj1 = new JSONObject();
jsobj1.put("type", "news");
jsobj1.put("offset", 1);
jsobj1.put("count", 3);
Map<String ,String >map2 = new HashMap<>();
map2.put("type", "news");
map2.put("offset", "1");
map2.put("count", "3");
//注意list 和 map都属于集合,对其进行操作时 一般用CollectionUtils来处理
CollectionUtils.isEmpty(map2);//例如:判断map是否为空
}
//该类想要被序列化,必须实现 java.io.Serializable 对象
//java中的序列化,为什么要进行序列化
//简单说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存Object States,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。
//该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型
/*
什么情况下需要序列化
a)当你想把的内存中的对象保存到一个文件中或者数据库中时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;
*/
public static void SerializeTest() {
SerializeUser user = new SerializeUser();
user.setUserId(95001);
user.setUserName("孩子有课");
user.setAddress("优盘时代");
user.setPhone("123456789");
user.setSex(1);
/*
//注意:所有的对文件(I/O)操作都需要try-catch
try {
//定义输出文件路径
FileOutputStream fileOut = new FileOutputStream("test/user.ser");
//定义文件输出对象
ObjectOutputStream out = new ObjectOutputStream(fileOut);
//写入资源到文件
out.writeObject(user);
//关闭
out.close();
fileOut.close();
System.out.printf("Serialized data is saved in /tmp/employee.ser");
}catch (IOException i){
i.printStackTrace();
}
*/
//反序列化
SerializeUser e = null;
try
{
FileInputStream fileIn = new FileInputStream("test/user.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
e = (SerializeUser) in.readObject();
in.close();
fileIn.close();
System.out.println("反序列化结果="+e);
}catch(IOException i)
{
i.printStackTrace();
return;
}catch(ClassNotFoundException c)
{
System.out.println("Employee class not found");
c.printStackTrace();
return;
}
//!!!!!! 注意一点细节:对IO的操作,Output(程序的输出)但是对文件的输入;;input(程序的输入)但是对文件的输出
//都是以流的方式进行的
}
//对字符串的处理
public static void StringTest(){
String a = "abc-defgb-dekliy";
//查找
int index1 = a.lastIndexOf("b");
int index2 = a.indexOf("b");
System.out.println(index1+"+"+index2);
//替换(替换所有,替换第几个)
String a1 = a.replaceFirst("b","ff");
System.out.println(a1);
//分割(string[]数组里面是存放string型的值,List<string>是存放string类型的对象)
//String []和List<String>作用是一样的,但灵活性不同。string[]是定长的,不容易实现容量增长
String [] a2 = a.split("-");//全部分割
System.out.println(a2[0]);
String [] a3 = a.split("-",2);//之分割前两段
System.out.println(a3[0]);
//!!!!!! 相互转换 !!!!!!!!
List<String>list = Arrays.asList(a2);
String[] b1 = (String[]) list.toArray();
//字符串拼接
/*
* 1、String定义的,可以直接用+号拼接
* 2、StringBuffer定义的,用append拼接
* */
//字符串格式化(例如吧e格式化成我们的数字类型等)
}
//数组和集合的区别:
//http://www.cnblogs.com/summers/p/4094260.html