《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 ...
随机推荐
- hibernate笔记--单(双)向的多对多映射关系
在讲单向的多对多的映射关系的案例时,我们假设我们有两张表,一张角色表Role,一张权限表Function,我们知道一个角色或者说一个用户,可能有多个操作权限,而一种操作权限同时被多个用户所拥有,假如我 ...
- GeoServer中利用SLD配图之矢量图层配图
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1 背景 我们在ArcMap中可以直接通过symbol功能对图层进行定 ...
- Solr学习总结(三)Solr web 管理后台
前面讲到了Solr的安装,按道理,这次应该讲讲.net与数据库的内容,C#如何操作Solr索引等.不过我还是想先讲一些基础的内容,比如solr查询参数如何使用,各个参数都代表什么意思? 还有solr ...
- OracleSugar ORM框架的诞生,代码开源
经过四天的努力终于将SqlSugar ORM 成功支持ORACLE数据库 优点: 1.高性能,达到原生最高水准,比SqlHelper性能要高,比Dapper快30% 比EF快50% 2.支持多种数据库 ...
- 泛型(Generics)
Framework类库中的泛型 泛型可以使代码重用,提高开发效率 CLR允许在引用类型.值类型或接口中定义泛型方法: CLR允许创建泛型引用类型.泛型值类型(枚举不允许创建).泛型委托类型和泛型接口类 ...
- 纯C#实现屏幕指定区域截屏
以前在别的地方见过一个通过调用系统API实现屏幕截图的例子,从内心来说我不太喜欢在C#代码中出现这种情况,现在什么都讲“和谐”,我觉得这种做法就是破坏了我们的“和谐”代码,呵呵,开玩笑,有的时候,不通 ...
- Asp.net 面向接口可扩展框架之“Mvc扩展框架及DI”
标题“Mvc扩展框架及DI”有点绕口,我也想不出好的命名,因为这个内容很杂,涉及多个模块,但在日常开发又密不可分 首先说Mvc扩展框架,该Mvc扩展就是把以前的那个Mvc分区扩展框架迁移过来,并优化整 ...
- html节点属性操作
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Activity的四种启动模式
Activity有四种启动模式: 1. standard,默认的启动模式,只要激活Activity,就会创建一个新的实例,并放入任务栈中,这样任务栈中可能同时有一个Activity的多个实例. 2. ...
- 【精粹系列】PHP精粹
本文地址 分享提纲: 1. 概述 2. 精粹内容 2.1 语言结构 2.2 大小写问题 2.3 变量函数 2.4 常量相关函数 2.5 字符串的使用 2.6 函数 2.7 数据库操作 2.8 自动 ...