Java字符串-包装类-日期-多线程(未完)

String s1= "S";
String s2= "S";
String s3 = new String("S");
String s4 = new String("S");
System.out.println( s1==s2 + "," + s1==s3 + "," + s3==s4);//ture false false

String创建后不可改变,重新赋值意味着指向新的对象
若希望比较字符串是否相同,则可用 s3.equals(s4);//返回ture
"=="用于比较字符串首地址是否相同
常用String方法——图自慕课网


String常用方法.jpg

warning:

1当返回位置时返回物理位置(从0开始)
2substring(x1,x2)返回的字串从物理地址x1——x2-1的字符串(不包括s[x2])

StringBuilder类——线程安全且可以修改的字符串
效率稍低于String
基本都支持String方法外,追加了一些方法

StringBuilder常用方法.jpg

包装类

包装类.jpg

常用于数据类型的相互转化
装箱:把基本类型转换成包装类,使其具有对象的性质
拆箱:和装箱相反,把包装类对象转换成基本类型的值

转化的实现:

基本类型转换为字符串有三种方法:
1使用包装类的 toString() 方法
2 使用String类的 valueOf() 方法
3 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串

int c =5;
String str1 = Integer.toString(c);
String str2 = String.valueOf(c);
String str3 = c+" ";

将字符串转换成基本类型有两种方法
1调用包装类的 parseXxx 静态方法
2 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱

String str = "5";
int x1 = Integer.parseInt(str);
int x2 = Integer.valueOf(str);

日期的格式化输出

1Date类

//用format方法将日期转化为指定格式文本
Date d = new Date();//表示当前时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");指定目标格式
String today = sdf.format(d);调用format()方法格式化时间
System.out.println(today);

//用parse()方法将文本转化为日期
String day = "2016年11月10日 21:20:00";
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date = df.parse(day);
System.out.println(date);

warning:

1调用 SimpleDateFormat 对象的 parse() 方法时可能会出现转换异常,即 ParseException ,因此需要进行异常处理
2使用 Date 类时需要导入 java.util 包,使用 SimpleDateFormat 时需要导入 java.text 包

2Calendar类

Calendar c = new Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);

多线程的两种实现方法

继承Thread类

class ClassName extends Thread
public int x;
public Classname(int x){ this.x = x; }
public void run()
{
System.out.println(this.x+"开始");
try{Thread.sleep(1000*10);
}catch(Exception ex){}
System.out.println(this.x+"结束");
}
public class TextClass{
public static void main(String[] args){
Classname c1 = new Classname(1);
Classname c2 = new Classname(2);
Classname c3 = new Classname(3);
c1.start();
c1.start();
c1.start();
}
}

warning:start方法重复调用的话,会出现java.lang.IllegalThreadStateException异常

Classname c1 = new Classname(1);
Classname c2 = c1;
c1.start();
c1.start();//出现error

用Runnable接口

class ClassName implements Runnable
public int x;
public Classname(int x){ this.x = x; }
public void run()
{
System.out.println(this.x+"开始");
try{Thread.sleep(1000*10);
}catch(Exception ex){}
System.out.println(this.x+"结束");
}
public class TextClass{
public static void main(String[] args){
Classname c1 = new Classname(1);
Classname c2 = new Classname(2);
Classname c3 = new Classname(3);
c1.start();
c1.start();
c1.start();
}
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,803评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • 一、 1、请用Java写一个冒泡排序方法 【参考答案】 public static void Bubble(int...
    独云阅读 1,443评论 0 6
  • import java.text.SimpleDateFormat;import java.util.Calend...
    霙愔阅读 773评论 0 2
  • 美国亚马逊(美亚),即亚马逊美国站(大本营),每逢美国各种节日会大力推出一些商品的促销活动,折扣力度大起来四舍五入...
    海淘便利小屋阅读 1,618评论 0 1