学号 20189214 《Java程序设计》第三周学习总结

教材学习内容总结

核心类

java.lang.Object

  1. 所有的类都直接派生自这个类。

java.lang.String

  1. String对象可以包含任意多个字符。
  2. String对象是一个常量,不可修改。

创建String对象:

  1. String s = "Java "
  2. String message = new String ("Java")

    两种方法的区别:当采用new关键字时,JVM会创建String的一个新实例。当采用字符串字面值的时候,你会得到相同的一个String对象。(如之前已经创建了,该对象可能来自于一个池)。
比较字符串
String s1 = "java"
String s2 = "java"
String s3 = new String ("java")
if(s1 == s2){
...
输出True
}
if (s1 == s3)
{
...
#输出False
# ==比较的是两个对象引用的地址
}
if (s1!=null&s1.equals("java"))
return true
#equal比较两个对象的值是否相同
if("java".equals(s1))
return true

字符串字面值

  1. String s1 = "String"+3
  2. 如果连接一个对象和一个String,调用前者的toString方法。

java.lang.StringBuffer和java.lang.StringBuilder

  1. String对象是不可变的。
  2. StringBuffer适合在多线程环境中使用;StringBuilder是Buffer的异步版本。
  3. StringBuilder未指定大小的时候会拥有16个字符的大小。如果了16个字符,对象会自动增加。

基本类型包装器

  • java.lang.Integer
  • java.lang.Boolean
  • java.lang.Character

java.lang.Class

  1. 每次JVM创建一个对象时,也创建一个java.lang.Class对象来描述该对象的类型。
  2. 同一个类的所有实例,都共享一个Class对象。

可调用对象的getClass方法来获取Class对象

可调用对象的getName方法,返回对象表示类的完全限定名称。

  1. forName和newInstance

java.lang.System

System类是一个final类

System.out

System.in

System.err

System.arraycopy

System.setProperty("password","ttt")

System.getProperty("password")

java.util.Scanner

Scanner scanner = new Scanner (System.in)
String input = scanner.nextLine()

错误处理

  1. 运行错误

    try...catch...finally...
  2. 编译错误

教材学习中的问题和解决过程

  • 问题1:java.lang.Object方法中toString返回对象的说明和getClass的区别
  • 问题1解决方案:toString返回对象的toString方法,未重写的toString方法返回@hashcode值;而getClass返回对象的名称。

代码调试中的问题和解决过程

  • 问题1:从方法中抛出异常的两种方法的顺序
  • 问题1解决方案:
    public static void main(String[] args) throws IOException
try...catch ...
1. 在接口的实现类中,如果定义的接口抽象方法中没有抛出异常,在重写的抽象方法中是不能通过throws这种方式抛出异常的,因为父类没有抛出异常,子类是不能抛出异常的。
2. 当通过try catch这种方法抛出异常的时候要注意抛出异常的顺序,异常范围小的放在前面,异常范围大的放在后面

代码托管

上周考试错题总结

如果有以下程序代码:

String[] strs=new String[5];

以下描述正确的是

A .产生5个String 实例

B .产生1个String 实例

C .产生0个String 实例

D .编译失败

(1)用new 语句创建对象,这是最常用的创建对象方法。

(2)运用反射手段,调用Java.lang.Class或者 java.lang.reflect.Constructor类的newInstance()实例方法。

(3)调用对象的clone()方法。

(4)运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 150/200 2/2 20/20
第二周 200/400 1/3 20/40
第三周 100/500 1/4 10/50
  • 计划学习时间:15小时

  • 实际学习时间:10小时

参考资料

java学习(三)的更多相关文章

  1. 《java学习三》并发编程 -------线程池原理剖析

    阻塞队列与非阻塞队 阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞.试图从空的阻塞队列中获取元素的线程将会被阻塞,直到 ...

  2. 《java学习三》jvm性能优化------jconsul

    利用jconsul检测线程死锁,    死锁的线程,会有   已锁定    三个字 visualVm                       也在jdk里 VisualVM 是一款免费的,集成了多 ...

  3. 《java学习三》jvm性能优化-------调优

    常见参数配置 -XX:+PrintGC      每次触发GC的时候打印相关日志 -XX:+UseSerialGC      串行回收 -XX:+PrintGCDetails  更详细的GC日志 -X ...

  4. JAVA学习<三>

    1.Java中运算符的优先级: 2.条件语句If: 如果 if 条件成立时的执行语句只有一条,是可以省略大括号滴!但如果执行语句有多条,那么大括号就是不可或缺的. public class Hello ...

  5. java学习(三) java 中 mongodb的各种操作

    一. 常用查询: 1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is  精确匹配,模糊匹配 使用 regex...) public PageUrl getByUrl(String ...

  6. java学习三 小数默认为double

    前++,后++在独立运算时候 直接计算出值 当后加加和减减和其他代码在一行的时候先使用加加和减减之前的值, 如果不在同一行,后面的一行就会得到加加或减减后的值 &&是逻辑运算符,逻辑运 ...

  7. 20145304 Java第三周学习报告

    20145304 <Java程序设计>第三周学习总结 教材学习内容总结 1.定义类: 类定义时使用class关键词,建立实例要使用new关键词. 代码如下: /*定义类 书上例子 衣服的型 ...

  8. 第三周java学习总结

    学号 20175206 <Java程序设计>第三周学习总结 教材学习内容总结 本周为第四章的学习,分为以下几个方面: 1.包与代码组织 2.String类 3.对象创建 4.包装类 经过代 ...

  9. Android JNI学习(三)——Java与Native相互调用

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

随机推荐

  1. Jmeter5.1.1创建一个http请求的压力测试

    1.首先添加一个线程组,在线程组中,配置压力情况 2.然后在线程组中,添加取样器,添加http请求:配置web服务器协议(http/https).服务器名称或IP.端口号.请求方法.路径等参数 3.然 ...

  2. 蒙特卡洛树,AMAF,Rave浅析

    蒙特卡洛树搜索: MCTS使用蒙特卡洛模拟来估计每个节点的价值. 其默认策略为贪婪算法, 即每次选择价值最高的节点进行模拟, 在每次模拟得到结果后, 将结果反馈回每个上级节点, 更新节点价值. 通常来 ...

  3. Gitlab使用Webhook实现Push代码后的jenkins自动构建

    本文出自https://www.cnblogs.com/kevingrace/p/6479813.html 怕以后找不到,所以先写到自己博客中 Gitlab利用Webhook实现Push代码后的jen ...

  4. v-charts 第一次亲密接触

    v-charts是什么鬼 v-charts是饿了么团队开源的一个图表库,vue+echarts开发.用element-ui直接集成echarts有些费劲,而v-charts已经封装成vue组件,可以直 ...

  5. 删除pending.xml

    如果提示不能删除 需要在cmd命令行中执行如下命令 echo y|cacls D:\Windows\winsxs\reboot.xml /p everyone:f del /q D:\Windows\ ...

  6. 1.Sed | Awk | Grep | Find

    1.Sed | Awk | Grep | Find 可以参考的文档链接 CentOS7 查看 当前机器 已经启动的端口的Shell命令: netstat -lntup | awk -F' ' {'pr ...

  7. React16的interactiveUpdates

    交互式更新是用户交互的结果. 它们比默认的非交互式更新(如服务器事件)具有更高的优先级. 异步模式下交互式更新的特殊之处在于,一次交互式更新可能会影响后续行为. 例如,一个表单字段上的"提交 ...

  8. 手动卸载的vs2010

    手动卸载的vs2010: 环境:Win7   卸载工具:IobitUninstaller(绿色版)//个人推荐,比较强大好用按照以下顺序:1.Microsoft .NET Framework 4 框架 ...

  9. mysql学习二、SQL常用数据类型

    一.常用数据类型 二.选择数据类型的原则: 1 业务需要 2 满足第一个条件下,需要存储空间最小的. 三.常用的选择数据类型思路:

  10. java script简介

    JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标 ...