1、在java中,要产生对象必须先定义类,类是对象的设计图,对象是类的实例。类定义时使用class关键词,建立实例对象要使用new关键词。以类名声明的变量,称为参考名称、参考变量或直接叫参考。

2、想在建立对象时想要一并进行某个初始流程,像是指定数据成员值,可以定义构造函数。构造函数是与类名称同名而且没有返回值的方法。参数名称与对象数据成员同名时,可以在数据成员前使用this关键字来区别。

3、java.util.Scanner的nextInt()方法会在标准输入中查找是否有输入的字符,以空格或换行分隔,有的话会尝试将之剖析为int类型;其他还有nextByte()、nextShort()、nextLong()、nextFloat()、nextDouble()、nextBoolean()等方法。如果直接去上一个字符串(以空格或换行分隔),则使用next();如果想取得用户输入的整行文字,则使用nextLine()(以换行分隔)。

4、java包括其他程序语言遵守IEEE 754浮点数运算规范,使用分数与指数来表示浮点数。如果要求精确度,那就要小心使用浮点数,而且别用==直接比较浮点数的运算结果。可以使用java.math.BigDecimal类得到想要的精确度。

5、=是用在指定参考名称参考某个对象,而==是用在比较两个参考名称是否参考的是同一对象。

6、想要像操作对象一样来操作基本类型,可以使用Byte、Short、Character、Integer、Long、Float、Double等类来打包基本类型,这些类就是所谓的打包器(基本类型的包装类)。除了使用new创建基本类型打包器之外,从J2SE 5.0之后提供了自动装箱功能。自动装箱功能与自动拆箱功能实际上是编译程序提供了方便。

7、数组在java中就是对象,索引从0开始,存取超出索引范围,就会抛出ArrayIndexOutOfBoundsException错误。自JDK5之后,有了更方便的增强式for循环,可用于循环取得数组元素。使用new建立数组后,每个索引元素会有默认值,基本类型的默认值为0,引用类型(类类型)的默认值为null。在java中数组一旦建立,长度就固定了。

8、无论是System.arraycopy()还是Array.copyOf()用在类类型声明的数组时,都是执行浅层复制,也就是说复制的都是对象的引用。

9、字符串的本质是打包字符数组的对象,是java.lang.String类的实例。在启动JVM并制定执行类时,可以一并制定命令行自变量,会收集为String数组,有main()中的args参考。

10、以“”包括的字符串,只要内容相同(序列、大小写相同),无论是程序中出现几次,JVM都只会创建一个String实例,并在字符串池中维护。如果想要比较字符串的实际内容是否相同,不要使用==,要使用equals()。

11、字符串对象一旦建立,就无法更改对象中的任何内容,对象上没有任何方法可以更改字符串的内容。使用+连接字符会生成新的String实例,不要将+用在重复性的连接场合。

12、使用javac指令编译程序时,如果没有指定-encoding选项时,会使用操作系统默认的字符编码。

课后练习题:

1、int x=100;  int  y=100;

Integer wx=x; Integer wy=y;

System.out.println(x == y);

System.out.println(wx == wy);

在JDK5以上的环境编译与执行,显示结果为:true,true。

2、 int x=200;  int  y=200;

Integer wx=x; Integer wy=y;

System.out.println(x == wx);

System.out.println(y == wy);

在JDK5以上的环境编译与执行,显示结果为:true,true。

3、int x=300;  int  y=300;

Integer wx=x; Integer wy=y;

System.out.println(wx.equals(x));

System.out.println(wy.equals(y));

在JDK5以上的环境编译与执行,显示结果为:true,true。

4、int[] arr1 = {1,2,3};

int[] arr2 = arr1;

arr2[1] = 20;

System.out.println(arr1[1]);

输出结果为 20;

5、int[] arr1 = {1,2,3};

int[] arr2 = new int[arr1.length];

arr2 = arr1;

for(int value : arr2){

System.out.printf(“%d”,value);

}

执行后输出1 2 3。

6、String[] Strs = new String[5];

以上语句会产生0个String实例。

7、String[] strs = {“java”,”java”,”java”,”java”,”java”};

以上语句会产生1个String实例。

8、String[][] strs = new String[3][2];

以上语句会产生0个String实例。

9、String[][] strs = {

{“java”,”java”,”java”},

{“java”,”java”,”java”,”java”}

};

System.out.println(strs.length);

System.out.println(strs[0].length);

System.out.println(strs[1].length);

执行输出后会显示2 3 4。

10、String[][] strs = {

{“java”,”java”,”java”},

{“java”,”java”,”java”,”java”}

};

for(String[] row : strs ){

for(String str : row){

……

}

}

《java JDK7 学习笔记》之类和对象的更多相关文章

  1. 《java JDK7 学习笔记》之对象封装

    1.构造函数实现对象初始化流程的封装.方法封装了操作对象的流程.java中还可以使用private封装对象私有数据成员.封装的目的主要就是隐藏对象细节,将对象当做黑箱子进行操作. 2.在java命名规 ...

  2. 《java JDK7 学习笔记》之Collection

    一.使用Collection 收集对象 1.认识Collection架构 Java SE提供了满足各种需求的API,在使用这些API前,建议先了解其继承与接口操作架构,才能了解何时使用哪个类,以及类之 ...

  3. 《java JDK7 学习笔记》之异常处理

    1.java中所有的错误都会被打包为对象,JVM会尝试执行try区块中的程序代码,如果发生错误,执行流程会跳离错误发生点,然后比较catch括号中声明的异常类型,是否符合被抛出的错误对象类型,如果是的 ...

  4. 《java JDK7 学习笔记》之继承与多态

    1.面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承.应该正确判断使用继承的时机及继承之后灵活的运用多态,才是学习继承时的重点. 2.程序代码重复在程序设计上,就是 ...

  5. 《java JDK7 学习笔记》之接口与多态

    1.对于"定义行为"也就是接口,可以使用interface关键字定义,接口中的方法不能操作,直接标示为abstract,而且一定是public修饰的. 类要操作接口,必须使用imp ...

  6. 《java JDK7学习笔记》之跨平台与路径设置

    Platforms表示Solaris.Linux.Windows各种操作系统平台,在这些平台上架构了java Virtaul Machine,简称JVM,Java虚拟机. Java虚拟机可以让java ...

  7. 《java jdk7学习笔记》之java三大平台

    Sun公司在2006年底,就将三大平台正名为java SE.java EE和java ME.也有很多人习惯用J2SE.J2EE和J2ME. 1.java SE java SE(标准版)是各应用平台的基 ...

  8. 《Java JDK7 学习笔记》课后练习题1

    1.()组织负责监督审查Java相关技术规格的演进. A. JCP B. Apache C. EU D. W3C 2.Java技术规格必须以()正式文件提交审查. A. RFC B. JSR C. I ...

  9. 《Java JDK7 学习笔记》课后练习题2

    1.如果在hello.java中撰写以下的程序代码: public class Hello {     public static dmain(String[]args) {          Sys ...

随机推荐

  1. 实用的SQL语句

    行列互转 ) select * from test2 --列转行 select id,name,quarter,profile from test2 unpivot ( profile for qua ...

  2. vue+node开发手机端h5页面开发遇到的坑

    项目进行中...随时更新 这里记录了一些手机端调试的方式 一 css 1.文字超过span宽度显示...(单行文字) .topWrap .introduce span { padding: 0 17p ...

  3. 【JUC】JDK1.8源码分析之LinkedBlockingQueue(四)

    一.前言 分析完了ArrayBlockingQueue后,接着分析LinkedBlockingQueue,与ArrayBlockingQueue不相同,LinkedBlockingQueue底层采用的 ...

  4. 【原创】轻量级即时通讯技术MobileIMSDK:Android客户端开发指南

    申明:MobileIMSDK 目前为个人维护的原创开源工程,现陆续整理了一些资料,希望对需要的人有用.如需与作者交流,见文章底签名处,互相学习. MobileIMSDK开源工程的代码托管地址请进入 G ...

  5. 获取documents、tmp、app、Library的路径的方法

    phone沙箱模型的有四个文件夹: documents,tmp,app,Library 1.Documents      您应该将所有的应用程序数据文件写入到这个目录下.这个目录用于存储用户数据或其它 ...

  6. Android Permission 访问权限大全(转)

    程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下: android.permission.ACCESS_CHECKIN_PROPERTIES允 ...

  7. Hadoop多节点集群安装配置

    目录: 1.集群部署介绍 1.1 Hadoop简介 1.2 环境说明 1.3 环境配置 1.4 所需软件 2.SSH无密码验证配置 2.1 SSH基本原理和用法 2.2 配置Master无密码登录所有 ...

  8. Hibernate总结(一)

    Hibernate为了提高性能,提供了缓存与快照机制. 它的缓存分为一级缓存与二级缓存. Hibernate一级缓存:当一个事务中执行一次Sql语句时,就将返回的结果存储在Session中的Map集合 ...

  9. 多级弹出菜单jQuery插件ZoneMenu

    ZoneMenu是一个菜单jQuery插件,只需占用页面上的一个小区域,却可以实现多级菜单. 在线体验:http://keleyi.com/jq/zonemenu/ 点击这里下载 完整HTML文件代码 ...

  10. jquery和css3实现滑动导航菜单

    效果预览:http://keleyi.com/keleyi/phtml/html5/15/ 有都中颜色可供选择,请使用支持HTML5/CSS3的浏览器访问. HTML源代码: <!DOCTYPE ...