==操作符与equals方法
用"=="进行比较时,符号两边的数据类型必须一致(可自动转换的基本数据类型除外),否则编译出错;
是Object类的方法,由于所有类都继承Object类,也就继承了equals()方法。只能比较引用类型,在Object类的定义中,其作用与“==”相同,比较是否指向同一个对象(同一地址)。格式:obj1.equals(obj2)
toString()方法在Object类中定义,其返回值是String类型,内容为类名以及该对象的引用地址。 在进行String与其它类型数据的连接操作时,自动调用toString()方法。
例如: Date now=new Date(); System.out.println(“now=”+now); 相当于 System.out.println(“now=”+now.toString());
重写equals方法的Demo
/**
* object类中equals方法的重写。
* @author Administrator
*
*/
public class Demo2 {
private int id;
private String name;
@Override
public boolean equals(Object obj) {
// 非空
if(obj == null) {
return false;
}
if(!(obj instanceof Demo2)) {
return false;
}
Demo2 demo2 = (Demo2)obj;
if(demo2.getId() == this.getId() && demo2.getName().equals(this.getName())) {
return true;
}
return false;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
// object 中的比较
Demo2 demo1= new Demo2(); // 实例1
demo1.setId(1);
demo1.setName("zhang");
Demo2 demo2= new Demo2(); // 实例2
demo2.setId(1);
demo2.setName("zhang");
System.out.println(demo1 == demo2); // false
//重写之前是false,重写之前调用的是object的equals方法,源码用的是==,比对的是地址
System.out.println(demo1.equals(demo2)); // true
}
}
字符串类的常用方法Demo
/*
* String str1 = "abc";可能创建一个或者不创建。 首先会在常量区中查找abc,如果找到abc,就把abc字符串引用地址赋给str1.
* 如果没有找到,就把abc放到常量区,然后在内存中开辟一个str1的空间,存放引用地址。
*
* new String("abc"); 可能创建一个或者两个。它首先也会去常量区(缓存区)里边查找 不管有没有 它都会在堆里新建一个 如果缓冲区里面没有 则在缓冲区里面也新建一个·。
*
* 总结:字符串使用建议选择 String str = “”;
*/
例如string s=“tt”
string s1=“tt” s等于s1
而 string s=new string(“ss”)
string s1=new string(“ss”) s不等于s1
public class Demo4 {
public static void main(String[] args) {
// 一个字符串常量,存放在字常量区。
String str1 = "慧与实训中心";
String str2 = "慧与实训中心";
String str3 = new String("慧与实训中心");
System.out.println(str2 == str3);
System.out.println(str1 == str2); //
System.out.println(str1.equals(str2));
//1、字符串的比较,== equals方法
// new String(""); = "";
String s = "abc";
// 字符数组
char[] charArray = s.toCharArray();
// 1\替换字符串 replace(); 正则表达式
String s1 = s.replace("b", "123");
System.out.println(s);
System.out.println(s1);//a123c
//2\判断字符串是否包含指定字符串。contains()
String string1 = "abcef";
boolean flag = string1.contains("a");
boolean flag1 = string1.contains("a1");
System.out.println(flag + " " + flag1);//flag=true,flag1=false
// 3\比较字符的大小, ASCII码字典的顺序索引,相等返回0,前面小于后面返回一个负数,大于返回一个正数
String string2 = "abc";
String string3 = "ac";
int c1 = string2.compareTo(string3);//返回一个负数
int c2 = string3.compareTo(string2);//返回一个正数
system.out.println(c2);
System.out.println(c1);
// 4\ indexof获取字符串或字符第一次出现的位置下标 lastindexof 字符串或字符最后一次出现的位置下标
String str4 = "中华人民,共和国,合同法";
int f1 = str4.indexOf(',');
int l1 = str4.lastIndexOf(',');
System.out.println(f1 + " " + l1);//f1=4,l1=8
// 5\substring指定索引位置,截取字符串。
String newStr1 = str4.substring(4);//截取下标为4及其后面的字符
System.out.println(str4.substring(str4.indexOf(',') + 1,str4.lastIndexOf(',')));//共和国
System.out.println(str4.substring(0,str4.indexOf(',')));
// 6\ length();
// 7\根据指定字符,转化成数组。split(); 正则表达式
// 设计的“,”分割. | ^ - ||
String str5 = "呵呵-你好-再见-在吗,今天去吃晚饭";
String[] array = str5.split("-");
System.out.println(array.length);//4
for (int i = 0; i < array.length; i++) {
String temp = array[i];
System.out.println(temp);
}
// 8\去掉空格 “ 你好 , 在吗 ” ==> "你好 , 在吗"
String str6 = " 你好 , 在吗 ";
String str7 = str6.trim();
System.out.println(str7);
// 9\charAt,获取一个下标的字符
char c = str4.charAt(1);
System.out.println(c);
// 10\concat字符串 拼接 "我爱" + "学习";===》 "我爱学习"
String str8 = "我爱".concat("学习");// sql
System.out.println(str8);
}
stringbuffer类演示
import java.util.Iterator;
public class Demo1 {
public static void main(String[] args) {
//
StringBuffer sb = new StringBuffer();
// select * from tb_user where id = '123' and name = 'zhang'
String id = args[0];
String name = args[1];
sb.append(" select * from tb_user ");
sb.append(" where id = '");
sb.append(id);
sb.append("' and name = '");
sb.append(name);
sb.append("' ");
System.out.println(sb);
// 拼接json数据 【{“id”:“123”,“name”:“zhangsan”},{“id”:“123”,“name”:“zhangsan”}】
Person[] ps = new Person[3];
Person p1 = new Person();
p1.id = 1;
p1.name = "zhangs1";
Person p2 = new Person();
p2.id = 2;
p2.name = "zhangs2";
Person p3 = new Person();
p3.id = 3;
p3.name = "zhangs3";
ps[0] = p1;
ps[1] = p2;
ps[2] = p3;
StringBuffer sbf = new StringBuffer();
sbf.append("[");
for (int i = 0; i < ps.length; i++) {
Person p = ps[i];
//【{“id”:123,“name”:“zhangsan”},{“id”:.。。。。。】
sbf.append("{\"id\":");
sbf.append(p.id);
sbf.append(",\"name\":\"");
sbf.append(p.name+"\"},"); //
}
// [{"id":1,"name":"zhangs1"},{"id":2,"name":"zhangs2"},{"id":3,"name":"zhangs3"},
sbf.deleteCharAt(sbf.length() - 1);
sbf.append("]");
System.out.println(sbf.toString());
int a = 1;
}
}
class Person{
public int id;
public String name;
}
1、包装类: a、面向对象编程思想;b,基本数据类型变量,不能用对象使用的问题。 c、传输过程中对象传输,容器中皆为对象。
* int --》 Integer
* 2、装箱和拆箱的过程 (手动,自动)
* 基本数据 ---》 对应的包装类 : 装箱
* 拆箱: 包装类---》对应的基本数据类型
* 3、 基本数据类型和String类型的转换
* 一、基本数据类型转化为String类型
* a, + "";
* b, String.valueof(基本数据类型);
* 二、String转化基本数据类型(包装类)
* 包装类.parseXXXX(字符串);
import java.util.*;
public class Demo2 {
public static void main(String[] args) {
List list = new ArrayList();
list.add(1);
int[] ii = {1,3,4};
System.out.println(list);
Integer i = new Integer(100);
int sum1 = 12 + i.intValue(); // 手动的拆箱
int sum = 12 + i; // 自动拆箱
System.out.println(12 + "12"); // 1212
String a = 12 + "";
int b = 100;
String.valueOf(b);
Integer bb = new Integer(b);
String bbStr = bb.toString();
String abc = "3.1415";
Double s = Double.parseDouble(abc);
System.out.println(12 + "");
}
}