javase学习二

练习一:Object类equals方法

一、简述String类中的equals方法与Object类中的equals方法的不同点。
答:String类中的equals方法是用来判断两个对象的内容是否相同,而Object 类中的equals方法是用来判断两个对象是否是同一个对象,所谓同一个对象指的是内存中的同一块存储空间。

练习二:Object类的toString方法

二、不运行代码,直接说出打印结果,并解释原因。
public class ToStringTest{
static int i = 1;
public static void main(String args[]){
System.out.println("love " + new ToStringTest());//love java
ToStringTest a = new ToStringTest();
a.i++;
System.out.println("me " + a.i);//me 2
}
public String toString(){
System.out.print("I ");//I
return "java ";
}
}
运行结果:I love java me 2
原因:当执行代码的时候,首先加载静态变量,然后执行main方法,由于main方法内部第一行代码为输出语句,里面new了此类对象,当执行此行代码时会先创建了本类的对象,由于此类重写了toString方法,会先执行toString方法的打印输出,然后返回“java ”,再执行main方法第一行打印输出。在Java中“System.out.println(类对象名);”实际输出的是该对象的toString()方法返回的字符串,即括号中的内容等价于类对象名.toString(),toString方法的好处是在碰到println方法的时候会被自动调用,不用显示的写出来。

练习三:Object类equals方法

三、看下列程序,不运行说结果,写出答案后,并在IntelliJ IDEA中运行看看自己给的答案与运行结果是否正确,并分析原因。
(1)
String s1 = new String("abc");
String s2 = "abc";
System.out.println(s1 == s2); //false
System.out.println(s1.equals(s2)); //true
(2)
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2); //true
System.out.println(s1.equals(s2)); //true
(3)
String s1 = "a" + "b" + "c";
String s2 = "abc";
System.out.println(s1 == s2); //true
System.out.println(s1.equals(s2)); //true
(4)
String s1 = "ab";
String s2 = "abc";
String s3 = s1 + "c";
System.out.println(s3 == s2); //false
System.out.println(s3.equals(s2)); //true

练习四:StringBuilder类与String类的区别

四、简述StringBuilder类与String类的区别。
答:String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象,所以经常改变内容的字符串最好不要用String,因为每次生成对象都会对系统性能产生影响。
StringBuilder又称为可变字符序列,是JDK5.0中新增加的一个类,它是一个类似于String的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。即它是一个容器,容器中可以装很多字符串,并且能够对其中的字符串进行各种操作。它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容,StringBuilder会自动维护数组的扩容。
练习五:Date类的使用
五、请用代码实现:获取当前的日期,并把这个日期转换为指定格式的字符串,如2088-08-08 08:08:08。
public class DateTest {
public static void main(String[] args) {
//获取当前日期对象 now;
Date now = new Date();
//创建SimpleDateFormat对象 df,并制定日期格式
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//调用df的format(Date date) 方法,传入now; 接收返回的字符串
String datestr = df.format(now);
//打印这个字符串
System.out.println(datestr);
}
}

练习六:DateFormat类方法的使用

六、使用SimpleDateFormat类,把2018-03-04转换为2018年03月04日。
public class DateFormatTest {
public static void main(String[] args) throws ParseException {
//创建SimpleDateFormat对象df1,指定日期模式为yyyy-MM-dd
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
//调用df1的parse(String str)方法传入2018-03-04,得到对应日期类型
Date date = df1.parse("2018-03-04");
//创建日期格式化对象df2,在获取格式化对象时可以指定风格
DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日");
//调用df2的format(Date date) 传入刚才转换的日期
String str = df2.format(date);
System.out.println(str);
}
}

练习七:Calendar类方法的使用

七、用程序判断2018年2月14日是星期几。
public class CalendarTest01 {
public static void main(String[] args) {
//创建Calendar对象
Calendar c = Calendar.getInstance();
//将给定的日历字段设置到Calendar对象中
c.set(Calendar.YEAR, 2018);
c.set(Calendar.MONTH, 1);
c.set(Calendar.DATE, 14);
//设置年
int year = c.get(Calendar.YEAR);
//设置月
int month = c.get(Calendar.MONTH)+1;
//设置日
int date = c.get(Calendar.DATE);
//设置星期
char week = getWeek(c.get(Calendar.DAY_OF_WEEK));
//输出结果
System.out.println(year+"年"+month+"月"+date+"日是星期"+week);
}
//定义方法,获取星期汉字
public static char getWeek(int a){
char[] c = {' ','日','一','二','三','四','五','六'};
return c[a];
}
}

转载于:https://blog.51cto.com/357712148/2348652

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习JavaSE可以通过以下几个步骤进行: 1. 了解JavaSE的基础知识:JavaSEJava的标准版,主要用于开发桌面应用程序。你可以开始学习JavaSE的基础语法、数据类型、控制流程等内容。可以参考\[3\]中提到的Java是一种跨平台、面向对象的高级程序设计语言,其语法和C++类似。 2. 学习JavaSE的核心概念:JavaSE包含了许多核心概念,如面向对象编程、异常处理、多线程等。你可以通过阅读相关的教程、书籍或参加培训课程来深入学习这些概念。 3. 实践编写JavaSE程序:学习JavaSE最好的方式是通过实践编写程序来加深理解。你可以尝试编写一些简单的JavaSE应用程序,如控制台程序、图形界面程序等。通过实践,你可以更好地理解JavaSE的各种特性和用法。 4. 参考JavaSE的官方文档和教程:JavaSE有详细的官方文档和教程,你可以参考官方文档来了解JavaSE的各种API和用法。此外,还可以参考一些优秀的JavaSE教程和书籍,如《Java核心技术》等。 总结起来,学习JavaSE需要掌握基础知识、核心概念,并通过实践编写程序来加深理解。同时,参考官方文档和教程可以帮助你更好地学习和应用JavaSE。 #### 引用[.reference_title] - *1* *2* *3* [教你如何正确学习JAVASE](https://blog.csdn.net/jsqzy/article/details/120726118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值