zoukankan      html  css  js  c++  java
  • 201521123121 《Java程序设计》第2周学习总结

    1. 本周学习总结

      通过分析数据所需要占用的内存长度来决定java的类型,其中主要分为基本类型和长类型。

    基本类型主要分为五个方面:整数(short=2字节;int=4字节;long=8字节);字节(byte);浮点数(float=4字节;double=8字节);字符(char=2字节);布尔(true;false)。

    数值在java中的暂存位置被称为变量,通常使用清楚易懂的词组命名,不可以以数字、特殊字符命名。变量名称也不可以与java的keyword(如int、float、class等)、保留字同名。

    程序语言中提供运算功能的就是运算符,包括:算术运算(+、—、*、/ 等);比较、条件运算(>、<、);逻辑运算(&& and、丨丨 or、!not);位运算(& and、丨or、^ xor 、~补码)递增递减(++、--)

    2. 书面作业

    使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。

    在JAVA中string类被设计为final类型是因为在Java中,被final类型修饰的类不允许被其他类继承,被final修饰的变量赋值后不允许被修改

    为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?

    string每次修改字符串都是新建,然后删除旧的串会很影响效率,而stringbuilder是在字符串的末尾操作,和string比较快, 
    在小数据库的时候string和stringbuilder没有什么大的影响,但是大数据量的时候,stringbuilder会比string快很多

    比较两个字符串的值是否相等?为什么不能用==直接进行比较?

    ==比较字符串是否引用同一地址,如果2个字符串是同一个对象,那可以用==,如果不是同一个对象,只是比较内容是否一致,则不可以用==

    尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:

    String str1 =“hi“, str2=“hi“;

    String str3 = new String(str1)

    System.out.println(str1==str2);

     建立了2个字符串对象:首先,在str1="hi"时,系统为str1创建了第一个字符串对象hi,而str2=str1,直接指向了之前的hi,

     当str3=new string(str1),系统会再次建立一个hi对象

    Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i

    i为一个Integer类型的引用,100为Java中的基础数据类型(primitive data type)。

    原理:装箱就是jdk自己帮你完成了调用Integer.valueOf(100)

    Java中的自动装箱与拆箱指的是基本数据类型与其包装类型的相互转换

    尝试分析下面代码输出结果

    1.Integer i1 = 127;Integer i2 = 127;

    i1 == i2;//true of false?

    2.Integer i1 = 128;Integer i2 = 128;

    i1 == i2;//true of false

     1.true 2.false

    这两段Integer.valueOf()代码,将字符串范围限制在一个字节之内,即-128——+127之间,超越这个范围的,需要新建字符串解决

    package与javac、 java、 -classpath、 -d

    在 com.ibm包中编写 StringUtil类,内有一方法

    public static void foo1(){

    System.out.println(StringUtil.class+" method:foo1");

    }

    edu.jmu包中编写Main类,其中掉了com.ibm.StringUtil的foo1方法

    1 尝试用命令行进行编译并运行,截图

    2 将生成的StringUtil.class放到d:lib正确的目录结构下,将Main.class在d: est正确的目录结构,尝试在命令行下运行,并截图。

    3 Eclipse中源代码放在哪个目录、class文件放在哪个目录。在Eclipse项目中按一下ctrl+f11就可以直接运行Main,尝试分析背后实现的原理。

    自己在这门课的目标与计划

    • 请描述一下你的技术基础(会什么语言,都写了多少行代码)
    • 一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
    • 关于这门课的smart目标参考链接

    对C语言和C++有过学习,目前每周花费约12小时在课后,一周尽量尝试PTA上的题目(看起来不多,其实还是很难)。

    采用课堂与课后作业、自学结合,遇到困难可以请教同学和使用网络、参考书本。

    最基本的目标还是完成所需的功课,最现实的目标是要学以致用,毕竟是给以后打下基础。

    3. 使用码云管理Java代码

    • 在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图

    4. PTA实验

    PTA习题对于我们初学者来说,其实并不简单,由于过往C语言等基础不是特别扎实,导致理论学习之外,投入到实际应用中,会发生各种不明错误

    身份证生日提取中,尝试过冒泡等数种方法,最后查阅资料发现可通过字符串截取方式,substring(int beginIndex, int endIndex) 更为的快捷解决

  • 相关阅读:
    列表框JList 及动作监听
    WindowListener(附带适配器改良方案)
    常用的几种文本组件(JTextComponent)
    JToggleButton组件
    java实现鼠标拖拽动作监听
    Flex读文本文件
    WPF socket通讯 UDP接收消息
    在线签名,并保存到本地
    flex直接访问服务器
    windows 8各种流之间的转换
  • 原文地址:https://www.cnblogs.com/toonaive/p/6495935.html
Copyright © 2011-2022 走看看