【Java中的常用类】(待完善)

1、常用类(String、servlet、异常类、集合、Thread、Number、Double、system)

String : 用char[]数组实现,结尾不用”\0”。

 

String str = “he”+new String(); 运行期间生成的--->指向堆内存???

new String(“22”) 实际上创建了2个String对象,字符串常量池--存在方法区和堆中

String s=”a”+”b”+”c”; 编译期完成。

String类是final类,成员方法默认为final方法,底层是char()数组来保存,没有“/0”

对String对象的任何改变都不会影响到原对象。

当代码中出现字面量形式创建字符串对象时,JVM首先会对字面量进行检查,如果常量池存在相同内容引用,则将引用返回,否则新的字符串对象被创建,然后将对象放到字符串常量池,并返回此引用。

方法:

(1) String.toUpperCase();==>转换为大写,有返回值

(2) string.replace(‘f’,’F’); ==>用F替代f,无返回值(参数为char和charSequence)

(3) string.replaceAll(‘regex’,’’);==>all 匹配的是正则表达式(.匹配各个字符)

(4) string.equals()==>String 重写了Object类的方法

 

Servlet 相关:

GenericServlet 抽象类给出了设计servlet的一些骨架,定义了servlet的生命周期,还有一些得到名字、配置、初始化参数的方法,设计与应用层无关。

service 方法是在servlet生命周期中的服务器,默认在HttpServlet类中实现,根据Http请求方法,将请求分发到doGet、doPost等方法实现。

javax.servlet.GenericServlet接口实现了javax.servlet.Servlet接口,且javax.servlet.http.HttpServlet是javax.servlet.GenericServlet子类。

  

 

 


 

Servlet的生命周期:

**************************************************************

***********

****此处贴图  Servlet的生命周期图

 

servlet处于服务器进程中,通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其一般不会销毁,而CGI对每个请求都产生新的线程,服务完成后就销毁,效率低,且不可移植。

 

异常:try-catch-finally   try/catch 抛出异常会增加更大的开销。

   如果try的return有执行语句,例如:return i--;  i--会执行,而return不会执行,进入finally。(finally一定会执行,除非try/catch中有 system.exit(0))退出。

finally中的语句不能影响try/catch中已经确定的i值,(可以说try/catch可以传递值到finally中,finally就像一个方法,i值就像一个参数,并不能把值传递回去)。最后从try中返回出i在try中的值。

结论:return 并不是函数的最终出口,也就是说遇到return要考虑是否还有finally要执行。如果存在funally代码块,会在return之前执行finally中的代码。

①. try、catch、finally都有return语句,返回finally的值。(try会执行return之后的语句,例如:i--);

②. 仅try、catch中有return语句。没有异常,执行完finally,返回i在try块中的值。

③. try中抛出异常,try、catch、finally中都有return,返回finally中的值。

④. try中抛出异常,try、catch中都有return,返回catch中的值。

⑤. try、catch中都出现异常,在finally中有返回,返回finally中的值。

finally中不建议放return语句,return语句可以放在try和catch里面和函数的最后。

finally语句中一般放置 释放资源、关闭数据库、关闭文件等操作语句。

当一个方法在运行时出现未catch的异常,则这个方法终止,但整个程序不终止。

 

异常分类:

所有的异常都继承自java.lang.Exception类。

检查性异常:不处理编译出错,===》非运行时异常 一般dao中throws抛,service中catch

非检查性异常:如果有抛出直接抛到控制台,==》RuntimeException 运行时异常Java编译器不会检查。

异常分类图

 

 

 

异常指程序运行时(非编译)所发生的错误,jvm将错误以异常形式抛出。

error类主要是运行时,逻辑错误导致的,jvm停止,

exception表示可恢复异常,包括检查性异常和运行性异常

检查性异常多包括IO异常、SQl异常,多发生在编译期,通过try/catch捕捉。

运行性异常一般都上抛,直到遇到处理代码,多线程用run()抛出,单线程用main()抛出。

 

Thread类可以被继承,用于创建线程。

Number类可以被继承,Integer和Float都是其子类。

Double和Math类都被final修饰,不可继承。

ClassLoader可以被继承,用户可以自定义类加载器。

 

 

Math类的方法:

 Math.cos为计算弧度的余弦值,Math.toRadians 方法将角度转换为弧度。

 

 

java.lang 包是java语言的核心包,lang是language的缩写,包括:基本的类型、包装类型等,Integer、String等,由解释器引入。

猜你喜欢

转载自blog.csdn.net/ca1m0921/article/details/80945003
今日推荐