收藏 分销(赏)

java的一些知识点部分总结分析127.pdf

上传人:天**** 文档编号:4314093 上传时间:2024-09-05 格式:PDF 页数:16 大小:213.67KB
下载 相关 举报
java的一些知识点部分总结分析127.pdf_第1页
第1页 / 共16页
java的一些知识点部分总结分析127.pdf_第2页
第2页 / 共16页
java的一些知识点部分总结分析127.pdf_第3页
第3页 / 共16页
java的一些知识点部分总结分析127.pdf_第4页
第4页 / 共16页
java的一些知识点部分总结分析127.pdf_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、单例模式单例模式 第一种(懒汉,线程不安全):第一种(懒汉,线程不安全):Singleton instance:单实例2 2 private static Singleton instance;3 private Singleton()4 public static Singleton getInstance()5 if(instance=null)6 instance=new Singleton();7 8 return instance;9 10 11 第二种(懒汉,线程安全):第二种(懒汉,线程安全):1 public class Singleton 2 private static S

2、ingleton instance;3 private Singleton()4 public static synchronized Singleton getInstance()5 if(instance=null)6 instance=new Singleton();7 8 return instance;9 10 11 第三种(饿汉):第三种(饿汉):1 public class Singleton 2 private static Singleton instance=new Singleton();创建对象 3 private Singleton()私有化构造器,防止外部调用4 p

3、ublic static Singleton getInstance()5 return instance;6 7 8 第四种(饿汉,变种):第四种(饿汉,变种):1 public class Singleton 2 private Singleton instance=null;3 static 4 instance=new Singleton();5 6 private Singleton()7 public static Singleton getInstance()8 return this.instance;9 10 11 第五种(静态内部类):第五种(静态内部类):1 public

4、 class Singleton 2 private static class SingletonHolder 3 private static final Singleton INSTANCE=new Singleton();4 5 private Singleton()6 public static final Singleton getInstance()7 return SingletonHolder.INSTANCE;8 9 10 第六种(枚举):第六种(枚举):1 public enum Singleton 2 INSTANCE;3 public void whateverMeth

5、od()4 5 6 第七种(双重校验锁):第七种(双重校验锁):1 public class Singleton 2 private volatile static Singleton singleton;3 private Singleton()4 public static Singleton getSingleton()5 if(singleton=null)6 synchronized(Singleton.class)7 if(singleton=null)8 singleton=new Singleton();9 10 11 12 return singleton;13 14 15

6、冒泡排序例子冒泡排序例子static void bubble_sort(int unsorted)for(int i=0;i unsorted.Length;i+)for(int j=i;j unsortedj)int temp=unsortedi;unsortedi=unsortedj;unsortedj=temp;static void Main(string args)int x=6,2,4,1,5,9;bubble_sort(x);foreach(var item in x)Console.WriteLine(item);Console.ReadLine();Get 和和 post 的

7、区别的区别1、GET 请求,请求的数据会附加在 URL 之后,以?分割 URL 和传输数据,多个参数用&连接。URL 的编码格式采用的是 ASCII 编码,而不是uniclde,即是说所有的非 ASCII 字符都要编码之后再传输。POST 请求:POST 请求会把请求的数据放置在 HTTP 请求包的包体中。上面的 item=bandsaw 就是实际的传输数据。因此,GET 请求的数据会暴露在地址栏中,而 POST 请求则不会。2、传输数据的大小在 HTTP 规范中,没有对 URL 的长度和传输的数据大小进行限制。但是在实际开发过程中,对于 GET,特定的浏览器和服务器对 URL 的长度有限制。

8、因此,在使用 GET 请求时,传输数据会受到 URL 长度的限制。对于 POST,由于不是 URL 传值,理论上是不会受限制的,但是实际上各个服务器会规定对 POST 提交数据大小进行限制,Apache、IIS 都有各自的配置。3、安全性POST 的安全性比 GET 的高。这里的安全是指真正的安全,而不同于上面 GET 提到的安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过 GET 请求,用户名和密码都会暴露再 URL 上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET 请求提交的

9、数据还可能会造成 Cross-site request frogery 攻击事务四大特性事务四大特性(简称简称 ACID)1、原子性(Atomicity):事务中的全部操作在数据库数据库中是不可分割的,要么全部完成,要么均不执行。2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。Java 中的中的 4 大作用域及作用范

10、围大作用域及作用范围 PageContext 对象(作用域)PageContext 对象就是指向当前 JSP 页面本身request 对象(作用域)客户端的请求信息被封装在 request 对象中,通过它才能了解到客户的需求,然后做出响应。它是 HttpServletRequest 类的实例。session 对象(作用域)session 对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication 开始,直到客户端与服务器断开连接为止。它是HttpSession 类的实例.application 对象(作用域)application 对象实现了用户间数据的共享,可存放

11、全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了 application 对象的生命。它是 ServletContext 类的实例。请求转发和请求重新定向的定义及区别?请求转发和请求重新定向的定义及区别?请求转发请求转发 请求转发是指将请求再转发到另一资源(一般为 JSP 或 Servlet)。此过程依然在同一个请求范围内,转发后浏览器地址栏内容不变 请求转发使用 RequestDispatcher 接口中

12、的 forward()方法来实现,该方法可以把请求转发到另外一个资源,并让该资源对浏览器的请求进行响应RequestDispatcher rd=request.getRequestDispatcher(path);rd.forward(request,response);或 request.getRequestDispatcher(path).forward(request,response);请求重新定向请求重新定向 重定向是指页面重新定位到某个新地址,之前的请求失效,进入一个新的请求,且跳转后浏览器地址栏内容将变为新的指定地址 重定向是通过 HttpServletResponse 对象的

13、sendRedirect()来实现,该方法相当于浏览器重新发送一个请求response.sendRedirect(path);Abstract 和和 interface 的区别的区别Abstract:抽象不能创建实例对象 抽象方法没有方法体 可以有抽象方法也可以有普通方法 不能有抽象的构造器 不能有静态的抽象方法Interface:接口 是抽象的特例 方法全部是抽象方法 接口中的方法默认为 public abstract 类型 接口中的成员变量类型默认为 public static final。区别:1.抽象类可以有构造方法,接口中不能有构造方法。2.抽象类中可以有普通成员变量,接口中没有普通

14、成员变量3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。4.抽象类中的抽象方法的访问类型可以是 public,protected 和(默认类型,虽然eclipse 下不报错,但应该也不行),但接口中的抽象方法只能是 public 类型的,并且默认即为 public abstract 类型。5.抽象类中可以包含静态方法,接口中不能包含静态方法6.抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是 public static final 类型,并且默认即为 public static final 类

15、型。7.一个类可以实现多个接口,但只能继承一个抽象类。Final1、final 修饰的类不能被继承。2、Sting 就是一个被 final 修饰的类,我们只能用,不能被继承3、final 不仅可以修饰类,还可以修饰变量,被 final 修饰的变量就是一个常量,只能赋值一次,修饰属性,属性不可变,修饰方法,方法不可覆盖4、注意 final 和 finally 的区别,final 是修饰类或者变量,finally 是在异常处理中使用,如:Try catch()finally中,finally 的作用一般用于必须处理的事情,如关闭连接String、Stringbuffer 及及 StringBuli

16、der 的区别的区别1.在执行速度方面的比较:StringBuilder StringBuffer String 2.StringBuilder:线程非安全的 StringBuffer:线程安全的3.String:字符串常量 StringBuffer:字符创变量 StringBuilder:字符创变量总结:总结:1.如果要操作少量的数据用=String 2.单线程操作字符串缓冲区 下操作大量数据=StringBuilder 3.多线程操作字符串缓冲区 下操作大量数据=StringBuffer正则表达式正则表达式Length 属性和属性和 length()方法方法String:有 length(

17、)方法,没有 length 属性数组:有 length 属性,没有 length()方法异常的种类异常的种类异常大体分为编译异常和运行异常两类(Exception 各种异常的根类)1、ArithmeticException 算数运算错误异常2、ArrayIndexOfOutBoundsException 数组下标越界3、NullPointException 空指针异常4、NumberFormatException 字符串转换成数字异常5、ClassCastException-类型强制转换异常。throws,throw,try,catch,finally 分别代表什么意义?分别代表什么意义?tr

18、y:指定一块预防所有“异常”的程序。catch:紧跟在 try 程序后面,应包含一个 catch 子句来指定你想要捕捉的“异常”的类型。throw:用来明确地抛出一个“异常”。throws:标明一个成员函数可能抛出的各种“异常”。Finally:不管发生什么“异常”都被执行一段代码。JSP 中九大内置对象中九大内置对象request 请求对象 类型 javax.servlet.ServletRequest 作用域 Requestresponse 响应对象 类型 javax.servlet.SrvletResponse 作用域 PagepageContext 页面上下文对象 类型 javax.s

19、ervlet.jsp.PageContext 作用域 Pagesession 会话对象 类型 javax.servlet.http.HttpSession 作用域 Sessionapplication 应用程序对象 类型 javax.servlet.ServletContext 作用域 Applicationout 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Pageconfig 配置对象 类型 javax.servlet.ServletConfig 作用域 Pagepage 页面对象 类型 javax.lang.Object 作用域 Pageexcepti

20、on 例外对象 类型 javax.lang.Throwable 作用域 pageAjax 的优势的优势.无刷新更新数据。无刷新更新数据。AJAXAJAX 最大优点就是能在不刷新整个页面的前提下与服务器通信维护数据。这使得最大优点就是能在不刷新整个页面的前提下与服务器通信维护数据。这使得 WebWeb 应用应用程序更为迅捷地响应用户交互,并避免了在网络上发送那些没有改变的信息,减少用户等程序更为迅捷地响应用户交互,并避免了在网络上发送那些没有改变的信息,减少用户等待时间,带来非常好的用户体验。待时间,带来非常好的用户体验。.异步与服务器通信。异步与服务器通信。AJAXAJAX 使用异步方式与服务

21、器通信,不需要打断用户的操作,具有更加迅速的响应能力。优使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。优化了化了 BrowserBrowser 和和 ServerServer 之间的沟通,减少不必要的数据传输、时间及降低网络上数据流量。之间的沟通,减少不必要的数据传输、时间及降低网络上数据流量。.前端和后端负载平衡。前端和后端负载平衡。AJAXAJAX 可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,轻

22、服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,AJAXAJAX 的原则的原则是是“按需取数据按需取数据”,可以最大程度的减少冗余请求和响应对服务器造成的负担,提升站点,可以最大程度的减少冗余请求和响应对服务器造成的负担,提升站点性能。性能。.基于标准被广泛支持。基于标准被广泛支持。AJAXAJAX 基于标准化的并被广泛支持的技术,不需要下载浏览器插件或者小程序,但需要客户基于标准化的并被广泛支持的技术,不需要下载浏览器插件或者小程序,但需要客户允许允许 JavaScriptJavaScript 在浏览器上执行。随着在浏览器上执行。随着 AjaxAjax 的成熟,一些简化的成

23、熟,一些简化 AjaxAjax 使用方法的程序库也使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持 JavaScriptJavaScript 的用户的用户提供替代功能。提供替代功能。.界面与应用分离。界面与应用分离。AjaxAjax 使使 WEBWEB 中的界面与应用分离(也可以说是数据与呈现分离),有利于分工合作、减少中的界面与应用分离(也可以说是数据与呈现分离),有利于分工合作、减少非技术人员对页面的修改造成的非技术人员对页面的修改造成的 WEBWEB 应用程序错误、提高效率、也更加适用于现在的发

24、布应用程序错误、提高效率、也更加适用于现在的发布系统。系统。构造器本质构造器本质默认的构造器本质是一个无参数,静态的,被 final 修饰的方法(final 修饰的方法不能被重写,不能被继承)Error 与与 Exception 有什么区别?有什么区别?Error(错误)表示系统级的错误和程序不必处理的异常,是 java 运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。jav

25、a 中有几种方法可以实现一个线程中有几种方法可以实现一个线程有两种实现方法,分别是继承 Thread(red)类与实现 Runnable 接口用 synchronized(skrnazd)关键字修饰同步方法多线程有几种实现方法多线程有几种实现方法?同步有几种实现方法同步有几种实现方法?多线程有两种实现方法,分别是继承 Thread 类与实现 Runnable 接口同步的实现方面有两种,分别是 synchronized,wait 与 notifywait():使一个线程处于等待状态,并且释放所持有的对象的 lock。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕

26、捉InterruptedException(中断异常)异常。notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由 JVM 确定唤醒哪个线程,而且不是按优先级。Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。Set 集合、集合、List 集合和集合和 Map 集合的区别集合的区别Set 中的对象不按特定方式排序,并且没有重复对象。但它的有些实现类能对集合中的对象按特定方式排序,例如 TreeSet 类,它可以按照默认排序,也可以通过实现java.util.Comparato

27、r接口来自定义排序方式。List 中的对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象,如通过 list.get(i)方式来获得 List 集合中的元素。Map 中的每一个元素包含一个键对象和值对象,它们成对出现。键对象不能重复,值对象可以重复。Collection 和和 Collections 的区别。的区别。Collection 是集合类的上级接口,继承与他的接口主要有 Set 和 List.Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。Set 里的元素是不能重复的,那么用什么方法来区分重复与

28、里的元素是不能重复的,那么用什么方法来区分重复与否呢否呢?是用是用=还是还是 equals()?它们有何区别它们有何区别?看 set 里存的是基本类型还是引用类型 基本类型用=,引用类型用 equals“=”和和 equals 的区别的区别“=”操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即堆栈中的内容是否相同。“equals”equals 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。什么是什么是 servlet?Servlet 是 SUN 推出的一套规范,规定了如何用 Java 来开发动态网站。也就是说,Java 可以用来开

29、发网站后台,但是要遵循一定的标准。Jsp 中的标签有哪些中的标签有哪些一、Include 指令 标签表示包含一个静态的或者动态的文件。语法:or 注:1、page=path 为相对路径,或者代表相对路径的表达式。2、flush=true 必须使用 flush 为 true,它默认值是 false。3、子句能让你传递一个或多个参数给动态文件,也可在一个页面中 使用多个 来传递多个参数给动态文件。二、Forward 指令 标签表示重定向一个静态 html/jsp 的文件,或者是一个程序段。语法:or 注:1、page=path 为一个表达式,或者一个字符串。2、name 指定参数名,value 指

30、定参数值。参数被发送到一个动态 文件,参数可以是一个或多个值,而这个文件却必须是动态文件。要传递多个参 数,则可以在一个 JSP 文件中使用多个将多个参数发送到一个动态 文件中。三、UseBean 指令 标签表示用来在 JSP 页面中创建一个 BEAN 实例并指定它的名字以 及作用范围。语法:其中 typeSpec 有以下几种可能的情况:class=className|class=className type=typeName|beanName=beanName type=typeName|type=typeName|注:你必须使用 class 或 type,而不能同时使用 class 和 b

31、eanName。beanName 表示 Bean 的名字,其形式为“a.b.c”。四、GetProperty 指令prpti 标签表示获取 BEAN 的属性的值并将之转化为一个字符串,然 后将其插入到输出的页面中。语法:注:1、在使用之前,必须用来创建它。2、不能使用来检索一个已经被索引了的属性。3、能够和 JavaBeans 组件一起使用,但是不能与 Enterprise Java Bean 一起使用。五、SetProperty 指令 标签表示用来设置 Bean 中的属性值。语法:其中 prop_expr 有以下几种可能的情形:property=*|property=propertyName

32、|property=propertyName param=parameterName|property=propertyName value=propertyValue 注:使用 jsp:setProperty 来为一个 Bean 的属性赋值;可以使用两种方式来实现。1、在 jsp:useBean 后使用 jsp:setProperty:在这种方式中,jsp:setProperty 将被执行。2、jsp:setProperty 出现在 jsp:useBean 标签内:在这种方式中,jsp:setProperty 只会在新的对象被实例化时才将被执行。*在中的 name 值应当和中的 id 值相同

33、。六、Pluginplgn指令 标签表示执行一个 applet 或 Bean,有可能的话还要下载一个 Java 插件用于执行它。语法:jsp:param name=parameterName value=parameterValue|/+text message for user 注:元素用于在浏览器中播放或显示一个对象(典型的就是 applet 和 Bean),而这种显示需要在浏览器的 java 插件。当 Jsp 文件被编译,送往浏览器时,元素将会根据浏览器的版本替 换成或 者元素。注意,用于 HTML 4.0,用 于 HTML 3.2。一般来说,元素会指定对象是 Applet 还是 Bean,同样也会指定 class 的名字,还有位置,另外还会 指定将从哪里下载这个 Java 插件。Web 知识点知识点软件的架构模式软件的架构模式集中式、分布式软件结构模式软件结构模式C/S:客户端与服务器端B/S:浏览器与服务器端C/S 与与 B/S 结构的区别结构的区别对硬件环境的要求不同对安全的要求不同软件重用不同系统维护不同对程序的架构不同(C/S 更加注重流程;B/S 更加注重运行过程中的安全)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服