《java JDK7 学习笔记》之类和对象
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 学习笔记》之类和对象的更多相关文章
- 《java JDK7 学习笔记》之对象封装
1.构造函数实现对象初始化流程的封装.方法封装了操作对象的流程.java中还可以使用private封装对象私有数据成员.封装的目的主要就是隐藏对象细节,将对象当做黑箱子进行操作. 2.在java命名规 ...
- 《java JDK7 学习笔记》之Collection
一.使用Collection 收集对象 1.认识Collection架构 Java SE提供了满足各种需求的API,在使用这些API前,建议先了解其继承与接口操作架构,才能了解何时使用哪个类,以及类之 ...
- 《java JDK7 学习笔记》之异常处理
1.java中所有的错误都会被打包为对象,JVM会尝试执行try区块中的程序代码,如果发生错误,执行流程会跳离错误发生点,然后比较catch括号中声明的异常类型,是否符合被抛出的错误对象类型,如果是的 ...
- 《java JDK7 学习笔记》之继承与多态
1.面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承.应该正确判断使用继承的时机及继承之后灵活的运用多态,才是学习继承时的重点. 2.程序代码重复在程序设计上,就是 ...
- 《java JDK7 学习笔记》之接口与多态
1.对于"定义行为"也就是接口,可以使用interface关键字定义,接口中的方法不能操作,直接标示为abstract,而且一定是public修饰的. 类要操作接口,必须使用imp ...
- 《java JDK7学习笔记》之跨平台与路径设置
Platforms表示Solaris.Linux.Windows各种操作系统平台,在这些平台上架构了java Virtaul Machine,简称JVM,Java虚拟机. Java虚拟机可以让java ...
- 《java jdk7学习笔记》之java三大平台
Sun公司在2006年底,就将三大平台正名为java SE.java EE和java ME.也有很多人习惯用J2SE.J2EE和J2ME. 1.java SE java SE(标准版)是各应用平台的基 ...
- 《Java JDK7 学习笔记》课后练习题1
1.()组织负责监督审查Java相关技术规格的演进. A. JCP B. Apache C. EU D. W3C 2.Java技术规格必须以()正式文件提交审查. A. RFC B. JSR C. I ...
- 《Java JDK7 学习笔记》课后练习题2
1.如果在hello.java中撰写以下的程序代码: public class Hello { public static dmain(String[]args) { Sys ...
随机推荐
- 将DataTable转换成CSV文件
DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表.CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记 ...
- 4-MSP430定时器_定时器中断
一开始没写好就上传了,,,,,,,,这次来个全的 自己学MSP430是为了写一篇关于PID的文章,需要430在proteus上做仿真,一则认为在自动控制算法上PID真的很经典,PLC设备上大多是模块式 ...
- Sql Server函数全解(四)日期和时间函数
日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同 ...
- [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(5)(IEnumerable<>补充)
Asp.net 5的依赖注入注入系列可以参考链接: [Asp.net 5] DependencyInjection项目代码分析-目录 我们在之前讲微软的实现时,对于OpenIEnumerableSer ...
- customErrors与错误页面
本配置节相对简单而且常用 <customErrors defaultRedirect="url" mode="On|Off|RemoteOnly"> ...
- ASP.NET Core 介绍和项目解读
标签: ASP.NETCore 1. 前言 2. ASP.NET Core 简介 2.1 什么是ASP.NET Core 2.2 ASP.NET Core的特点 2.3 ASP.NET Core 项目 ...
- 从零开始编写属于我的CMS:(一)前言
一,项目背景 记得大学毕业课题,我就是选择做个CMS,不过当时虽然做了个,不过感觉不是很好,所以现在又重做了,顺便发上来供大家讨论的.虽然CMS不是什么特别的项目,但是还是想从一个普通项目学到更多的东 ...
- sql server 查看表的死锁和Kill 死锁进程
查询出来 select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableNa ...
- java对email邮箱的真实、有效性验证
三种验证邮箱有效性的方式: 方式1: public static boolean checkEmail(String email) { if (!email.matches("[\\ ...
- 能力素质模型咨询工具(Part1)
之前写过由企业家基本素质想到的文章,里面提及一些能力与素质,以下有内容也可以参考: 领导职位 表6-1 远见卓识的行为表现 级 别 行 为 表 现 A (1)关注行业的前景和环境的变化, ...