编程语言
首页 > 编程语言> > java必背综合知识点总结(基础篇四)

java必背综合知识点总结(基础篇四)

作者:互联网

三十一、平时浏览的书籍

实战经验:*** in action(实战)*** 深入浅出*** 入门指南思想基础:大话设计模式 重构

三十二、java Exception体系结构

java 异常是程序运行过程中出现的错误。Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。在Java API中定义了许多异常类,分为两大类,错误Error和异常Exception。其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常(非runtimeException),也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。

1、Error与ExceptionError是程序无法处理的错误,比如OutOfMemoryError、ThreadDeath等。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。

Exception是程序本身可以处理的异常,这种异常分两大类运行时异常和非运行时异常。程序中应当尽可能去处理这些异常。

2、运行时异常和非运行时异常运行时异常: 都是RuntimeException类及其子类异常: IndexOutOfBoundsException 索引越界异常ArithmeticException:数学计算异常NullPointerException:空指针异常ArrayOutOfBoundsException:数组索引越界异常ClassNotFoundException:类文件未找到异常ClassCastException:造型异常(类型转换异常)

这些异常是不检查异常(Unchecked Exception),程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的。

非运行时异常:是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如:IOException、文件读写异常FileNotFoundException:文件未找到异常EOFException:读写文件尾异常MalformedURLException:URL格式错误异常SocketException:Socket异常SQLException:SQL数据库异常

三十三、session和cookie的区别

session是存储在服务器端,cookie是存储在客户端的,所以安全来讲session的安全性要比cookie高,然后我们获取session里的信息是通过存放在会话cookie里的sessionid获取的。又由于session是存放在服务器的内存中,所以session里的东西不断增加会造成服务器的负担,所以会把很重要的信息存储在session中,而把一些次要东西存储在客户端的cookie里,然后cookie确切的说分为两大类分为会话cookie和持久化cookie,会话cookie确切的说是,存放在客户端浏览器的内存中,所以说他的生命周期和浏览器是一致的,浏览器关了会话cookie也就消失了,然而持久化cookie是存放在客户端硬盘中,而持久化cookie的生命周期就是我们在设置cookie时候设置的那个保存时间,然后我们考虑一问题当浏览器关闭时session会不会丢失,从上面叙述分析session的信息是通过会话cookie的sessionid获取的,当浏览器关闭的时候会话cookie消失所以我们的sessionid也就消失了,但是session的信息还存在服务器端,这时我们只是查不到所谓的session但它并不是不存在。那么,session在什么情况下丢失,就是在服务器关闭的时候,或者是session过期(默认时间是30分钟),再或者调用了invalidate()的或者是我们想要session中的某一条数据消失调用session.removeAttribute()方法,然后session在什么时候被创建呢,确切的说是通过调用getsession()来创建,这就是session与cookie的区别.访问HTML页面是不会创建session,但是访问index.JSP时会创建session(JSP实际上是一个Servlet, Servlet中有getSession方法)

三十四、字节流与字符流的区别

stream结尾都是字节流,reader和writer结尾都是字符流两者的区别就是读写的时候一个是按字节读写,一个是按字符。实际使用通常差不多。在读写文件需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。只是读写文件,和文件内容无关的,一般选择字节流。

三十五、final,finally,finalize 三者区别

Final是一个修饰符:当final修饰一个变量的时候,变量变成一个常量,它不能被二次赋值当final修饰的变量为静态变量(即由static修饰)时,必须在声明这个变 量的时候给它赋值当final修饰方法时,该方法不能被重写当final修饰类时,该类不能被继承Final不能修饰抽象类,因为抽象类中会有需要子类实现的抽 象方法,(抽 象类中可以有抽象方法,也可以有普通方法,当一个抽象类中没有抽象方 法时,这个抽象类也就没有了它存在的必要)Final不能修饰接口,因为接口中有需要其实现类来实现的方法Finally:Finally只能与try/catch语句结合使用,finally语句块中的语句一定会执行, 并且会在return,continue,break关键字之前执行finalize:Finalize是一个方法,属于java.lang.Object类,finalize()方法是GC (garbage collector垃圾回收)运行机制的一部分,finalize()方法是在 GC清理它所从 属的对象时被调用的

三十六、Io流的层次结构

从流的方向输入流 输出流

从流的类型上字符流 字节流

inputstream和outputstream都是抽象类

它们下面的实现包括

FileInputStream,BufferedInputStream

FileOutputStream,BufferedOutputStream

reader 和 writer

FileReader,BufferedReader,StringReader

FileWriter,BufferedWriter,StringWriter,PrintWriter

三十七、JAVA:

Java是面向对象的,跨平台的,它通过java虚拟机来进行跨平台操作,它可以进行自动垃圾回收的【c语言是通过人工进行垃圾回收】,java还会进行自动分配内存。【c语言是通过指定进行分配内存的】,只需要new一个对象,这个对象占用了多少空间,不需要我们来管,java虚拟机负责管这些,用完之后也不需要我们来释放,java虚拟机会自动释放

三十八、JavaSE JavaEE JavaME区别

是什么:Java SE=Java Standard Edition=j2se = java 标准版Java EE=Java Enterprise Edition=j2ee= java 企业版Java ME=Java Mobile Edition=j2me = java移动版特点:SE主要用于桌面程序(swing),控制台开发(main程序)。

EE企业级开发(JSP,EJB,Spring MVC,Struts,hibernate,ibatis等),用于企业级软件开发,网络开发,web开发。

ME嵌入式开发(手机,小家电,PDA)。[苹果的ios,黑莓]

三者之间的关系:Java SE(Java Platform, Standard Edition,Java标准版)就是基于JDK和JRE的。

Java SE为Java EE提供了基础。

Java EE除了基于我们这个所谓的Java SE外,还新加了企业应用所需的类库

三十九、JDK JRE JVM的区别:

Jdk【Java Development ToolKit】就是java开发工具箱, JDK是整个JAVA的核心里边包含了jre,它除了包含jre之外还包含了一些javac的工具类,把java源文件编译成class文件,java文件是用来运行这个程序的,除此之外,里边还包含了java源生的API,java.lang.integer在rt的jar包里边【可以在项目中看到】,通过rt这个jar包来调用我们的这些io流写入写出等JDK有以下三种版本:

J2SE,standard edition,标准版,是我们通常用的一个版本J2EE,enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序J2ME,micro edtion,主要用于移动设备、嵌入式设备上的java应用程序Jre【Java Runtime Enviromental】是java运行时环境,那么所谓的java运行时环境,就是为了保证java程序能够运行时,所必备的一基础环境,也就是它只是保证java程序运行的,不能用来开发,而jdk才是用来开发的,所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。

Jre里边包含jvmJvm:【Java Virtual Mechinal】因为jre是java运行时环境,java运行靠什么运行,而底层就是依赖于jvm,即java虚拟机,java虚拟机用来加载类文件,java中之所以有跨平台的作用,就是因为我们的jvm

关系:J2se是基于jdk和jre,JDK是整个JAVA的核心里边包含了jre,Jre里边包含jvm

四十、报错的状态码:

301 永久重定向302 临时重定向304 服务端 未改变403 访问无权限200 正常404 路径500 内部错误

推荐视频课程学习:

【java基础】Java基础视频教程 

标签:知识点,Exception,Java,必背,session,cookie,java,异常
来源: https://blog.csdn.net/java_500/article/details/120871733