一、学习内容摘要

1、String s=“sadfjsad”和String s=new String(“saldkfjas”)、String的实例变量s默认初始化和显式初始化s为new String()的区别
2、连字符和加法运算符
3、For循环和其增强循环
4、While循环和do-while循环
5、Switch-case循环,switch和case后变量的限制,switch中只能有case语句,case 中以break或return中断。
6、异常处理,常见异常类型,异常的声明与捕获。

二、知识点总结

关于String对象
new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;

String str=”kvill”;
   String str=new String (“kvill”);的区别:
  常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。
  看例1:
  String s0=”kvill”;
  String s1=”kvill”;
  String s2=”kv” + “ill”;
  System.out.println( s0==s1 ); true
  System.out.println( s0==s2 );true

首先,我们要知道Java会确保一个字符串常量只有一个拷贝。
  因为例子中的s0和s1中的”kvill”都是字符串常量,它们在编译期就被确定了,所以s0==s1为true;而”kv”和”ill”也都是字符串常量,当一个字符串由多个字符串常量连接而成时,它自己肯定也是字符串常量,所以s2也同样在编译期就被解析为一个字符串常量,所以s2也是常量池中”kvill”的一个引用。

所以我们得出s0==s1==s2;

用new String() 创建的字符串不是常量,不能在编译期就确定,所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间。

看例2:

String s0=”kvill”;

String s1=new String(”kvill”);

String s2=”kv” + new String(“ill”);

System.out.println( s0==s1 ); false

System.out.println( s0==s2 ); false

System.out.println( s1==s2 ); false

例2中s0还是常量池中”kvill”的引用,s1因为无法在编译期确定,所以是运行时创建的新对象”kvill”的引用,s2因为有后半部分new String(“ill”)所以也无法在编译期确定,所以也是一个新创建对象”kvill”的引用。

1、char类型实例变量默认初始化为‘\u0000’,输出为空字符,而String类型默认初始化为null。
2、如果任何一个操作数为String,则+运算符就会链接这两个操作数,注意连接和拆箱可同时进行。如果两个操作数都为数字,则+运算符是加法运算符。
3、Default不一定要位于所有case之后。如果没有break,则会继续向下执行,知道遇到case中的break或return或switch块结束为止。
4、For增强循环中,冒号左边一定是声明类型加上变量名,声明类型不能置于for外。
5、^运算符是当且仅当只有一个表达式是对的时返回ture
6、IllegalArgumentException是NumberFormatException的父类
7、Swich的表达式必须能求值成char、byte、short、int或者枚举。这意味着如果没有使用枚举,则只有能够被自动提升为int的变量才是可接受的。如果使用任何其他数值类型,包括long、float和double等,都不能编译。
8、Case常量必须与switch表达式结果可用的类型相同,但还有一个额外的便企鹅是重大的约束:case常量必须是编译时常量!因为case变元必须在编译时解析,这意味着只能使用常量或者被赋予字面值的final变量,如可以用final int b=1;而不能用final int b;b=1;。 在switch(byte)中使用case 128:也将无法编译。   在switch表达式中利用装箱的能力是合法的,如switch(new Integer(4))
9、基本for循环中,for关键字之后的圆括号内声明并初始化0个或1个或多个同类型的变量,且多个变量之间只能用逗号隔开,只能有一个类型声明。第三部分迭代表达式处可以不设置任何递增或递减内容,甚至可以放置该循环每次迭代时要执行的任意代码语句,如输出语句。

10、For增强循环可以遍历集合,但如果集合没有声明泛型,则for的声明部分类型应为Object
带标签的continue和break语句必须位于相同标签名称的循环内,否则无法编译。标签应紧邻循环之前放置。

异常
Try块中的语句不一定被执行,因此在catch块中引用try块中声明的变量将不能通过编译。
无论是否抛出异常,finally块代码总能在try块之后的某点执行,这意味着try-catch-finally中无论try和catch是否抛异常finally最后都会执行,但执行结果在catch执行结果之后如果(catch块执行的话)。即使在try-catch块内有return语句,finally块也能够在遇到return语句之后,并在return语句执行之前执行。这是关闭文件,释放网络套接字以及执行代码所需的任何清理操作的理想场所。
 Try块后如果不跟catch块就要跟finally块。  
所有非Runtime异常都被视为检验异常。每个方法必须通过提供trycatch块来处理所有检验异常(RuntimeException和Error除外),或者将每个未处理的检验异常列为一个抛出异常,否则不能编译。但可以仅声明异常,而方法内不抛出异常。 
最具体的异常处理程序必须总是放在更一般的异常处理程序上面,否则便以失败,被子类型异常声明捕获的异常将不会再往调用栈向下传播。
A a=new B(); B extends A 若A中方法process()抛了异常,而B中重写方法process()没有抛异常,则调用a.process()时需要抛出异常,否则无法编译。因为编译时看的是引用类型,而类A中方法抛出异常。 即使方法的确声明了Runtime异常,调用方法时也不负责处理或声明它,但它可以被catch块捕获。
try-catch块中用Exception捕获Error可编译但有异常
可以只为方法声明异常或只抛出异常,可通过编译
IllegalStateException :在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。

For循环补充:
public class hjj {
 public static boolean foo(char c){
  System.out.println(c);return true;}
 public static void main(String[] args){
  int i=0;
 for(foo('A');foo('B')&&(i<2);foo('C’){
   i++;
   foo('D');
  }
 }
}声明部分和迭代部分可以是输出语句也可以是函数调用

备考OCJP认证知识点总结(三)相关推荐

  1. 备考OCJP认证知识点总结(二)

    一.学习内容摘要 第二章: 1.面向对象的三大特性:封装,继承,多态. 2.多态的三要素:继承,重写,父类引用指向子类对象 3.方法的重写和重载 4.接口的定义和实现,与抽象类的不同 5.构造方法及n ...

  2. OCJP认证考试复习课-张晨光-专题视频课程

    OCJP认证考试复习课-388人已学习 课程介绍         OCJP是甲骨文推出的的国际认证. 本课程由Java总监级讲师专注Java十三年,不但包含OCJP考试全部内容,还特意制作了很有针对性 ...

  3. OBCA认证知识点-part3

    1.OceanBase家族主要产品 - OceanBase数据库内核(最核心),Paxos协议确保高可用性,兼容MySQL与Oracle,同时支持HTAP(既可用于OLTP业务,也可以用于OLAP业务 ...

  4. OBCA认证知识点-part4

    1.当一张表很大时,可以水平拆分为若干个小的分区,存储在物理硬盘上,每个分区包含表的若干行记录. 2.根据数据到分区的映射关系不同,分为hash分区.list分区.range分区.每个分区还可以进行二 ...

  5. 阿里云ACP认证知识点相关重点总结(上)

    本文章原作者山海经,已获得作者授权在平台发布.若需转载或复制可直接转载,标注作者山海经即可,无需特别说明. 有意者投稿.合作idea等请联系微信号aws_superman 阿里云acp认证知识点相关重 ...

  6. 备考华为认证HCIP

    先来了解一下华为认证HCIP: HCIP-Huawei Certified ICT Professional:华为认证ICT高级工程师(HCIP)是华为认证体系中用于标识个人能力在某一技术领域达到高级 ...

  7. aws认证有用吗?怎么备考AWS认证考试?

    aws认证考试的难度并不是很大,很多人认真备考几个月都会通过,而且现在云计算发展比较好,aws认证证书作用比较大.aws认证有用吗?怎么备考AWS认证考试? 下面认证大使就来给大家详细介绍下吧. 一. ...

  8. 一天1个机器学习知识点(三)

    陆陆续续整理的机器学习的知识点,资料大多数来自网上,不做盈利目的,如果侵权请告知即删!如果文章中有错误的地方还请各位同学指正,,一起学习,一起进步! 每天都在更新中,记得收藏,每天进步一点点!! 一天 ...

  9. linux 规避锐捷认证(版本三)

    linux 规避锐捷认证(版本三) Luo Weifeng 2011-4-25 转载请保留:http://blog.csdn.net/luoweifeng1989/archive/2011/04/25 ...

  10. JDBC知识点/第三部分使用PreparedStatement增删改查

    JDBC知识点/第三部分增删改查 写在前面:本博客是JDBC第三部分,JDBC学习路线目录为: JDBC总目录 欢迎大家一起讨论,如有错误,敬请指正 目录 JDBC知识点/第三部分增删改查 3 增删改 ...

最新文章

  1. “编码 5 分钟,命名 2 小时”,这道题究竟怎么解? | 问题征集
  2. Visual Studio 2013开发 mini-filter driver step by step (1) - 创建 mini filter driver 工程
  3. #define const typedef
  4. Linux 阻塞和非阻塞IO 实验
  5. C#实践设计模式原则SOLID
  6. Flex整合Spring
  7. c语言 get post,简述GET和POST的区别
  8. 又整理了一批可以拿去做副业的开源项目...
  9. VS C# string 字符包含判断
  10. MATLAB符号运算——微分
  11. PX4代码学习系列博客(1)——开发环境配置
  12. 三维浮雕软件 linux,三维立体浮雕软件下载
  13. 【人话版】分布式数字身份:通往WEB3世界的桥头堡
  14. JQuery监听页面滚动总结
  15. 怎么架设魔兽世界服务器?
  16. python应用之Word生成
  17. 大数据-Flume(二)
  18. 手游平台开发需要哪些人员构成?
  19. macbook安装typescript环境added 1 package, and audited 2 packages in 26sfound 0 vulnerabilities代表成功了
  20. 鸟飞行html代码控制,html5 canvas一群鸟飞行

热门文章

  1. ENVI 5.6安装教程及安装包下载
  2. 离散数学思维导图笔记
  3. ARP欺骗的艺术 | 断网与监听
  4. 彻底搞懂遗传算法原理+代码讲解+具体例子
  5. 网络基础---NAT技术和代理服务器
  6. 经典Flash MX 2004教程全集
  7. 编写一个UNIX文件系统
  8. 智能陈桥五笔输入法 for linux,智能陈桥五笔官方版
  9. Oracle oci.dll 下载地址
  10. 客户端软件的结构思考(一)