版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一种(懒汉,线程不安全):单例模式2 2private staticSingletoninstance;3private Singleton()4public staticSingletongetInstance()5if (instance =:=null )6instance=newSingleton();78return instance;910 11Singleton instance :单实例第二种(懒汉,线程安全):1 public2class Singleton private static Singleton instance;34private Singleton ()pu
2、blic static synchronized Singleton getInstance()5if (instance = null )6instance = new Singleton();78return instance;910 11第三种(饿汉)1 publicclassSingleton2privatestaticSingleton instance = new Singleton();创建对象3privateSingleton()私有化构造器,防止外部调用4publicstaticSingleton getInstance()5returninstance;67 8第四种(饿汉
3、,变种)1 publicclassSingleton 2privateSingleton instance = null ;3static4instance=new Singleton();56privateSingleton ()7publicstatic Singleton getInstance()8returnthis .instance;910 11第五种(静态内部类)1 publicclassSingleton2privatestaticclass SingletonHolder 3privatestaticfinal Singleton INSTANCE = new Single
4、ton();45privateSingleton()6publicstaticfinal Singleton getInstance()return SingletonHolde匚INSTANCE;第六种(枚举):publicenumSingleton INSTANCE;publicvoid whateverMethod()第七种(双重校验锁)1 publicclassSingleton 2privatevolatilestaticSingleton singleton;3privateSingleton ()4publicstatic SingletongetSingleton()5if (
5、singleton = null )6synchronized (Singleton. class ) 7if (singleton =null ) 8singleton=new Singleton();9 TOC o 1-5 h z returnsingleton;冒泡排序例子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 =
6、 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 的区别1、GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据, 多个参数用&连接。URL的编码格式采用的是 ASCII编码,而不是uniclde, 即是说所有的非ASCI序符都要编码之后再传输。POST请求:POST青求会把请求的数据放置在 HTTP请求包的包体中。上面的
7、item=bandsaw 就是实际的传输数据。因此,GET请求的数据会暴露在地址栏中,而 POST青求则不会。2、传输数据的大小在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是 在实际开发过程中,对于 GE特定的浏览器和服务器对 URL的长度有 限制。因此,在使用 GET请求时,传输数据会受到 URL长度的限制。对于POST由于不是URL传值,理论上是不会受限制的,但是实际上 各个服务器会规定对POST!交数据大小进行限制,Apache、IIS都有各 自的配置。3、安全性POST的安全性比GET的高。这里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到
8、的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过GET请求,用户名和密码都会暴露再URL上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET请求提交的数据还可能会造成 Cross-site request frogery攻击事务四大特性(简称ACID)1、原子性(Atomicity):事务中的全部操作在 数据库中是不可分割的,要么全部完 成,要么均不执行。2、一致性(Consistency*几个并行执行的事务,其执行结果必须与按某一顺序用 行执行的结果相一致。3、隔离性(Isolation):事务的执行不受其
9、他事务的干扰,事务执行的中间结果对 其他事务必须是透明的。4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改 变不被丢失,即使数据库出现故障。Java中的4大作用域及作用范围PageContext对象(作用域)PageContext对象就是指向当前JSP页面本身request对象(作用域)客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是 HttpServletRequest类的实例。session对象(作用域)session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication 开始
10、,直到客户端与服务器断开连接为止。它是HttpSession 类的实例.application对象(作用域)application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是 ServletContext 类的实例。请求转发和请求重新定向的定义及区别?请求转发请求转发是指将请求再转发到另一资源(一般为JSP Servlet)。此过程
11、依然在同一个请求范围内,转发后浏览器地址栏内容不变请求转发使用RequestDispatcher接口中的forward。方法来实现,该方法可以 把请求转发到另外一个资源,并让该资源对浏览器的请求进行响应RequestDispatcher rd = request.getRequestDispatcher(path);rd.forward(request,response);或request.getRequestDispatcher(path) .forward(request,response);请求重新定向|重定向是指页面重新定位到某个新地址,之前的请求失效,进入一个新的请求,且跳转后浏览器
12、地址栏内容将变为新的指定地址重定向是通过 HttpServletResponse对象的sendRedirect()来实现,该方法相当于浏览器重 新发送一个请求response.sendRedirect(path);Abstract和 interface 的区别Abstract:抽象不能创建实例对象抽象方法没有方法体可以有抽象方法也可以有普通方法不能有抽象的构造器不能有静态的抽象方法Interface:接口是抽象的特例方法全部是抽象方法接口中的方法默认为public abstract类型接口中的成员变量类型默认为public static final。区别:.抽象类可以有构造方法,接口中不能有构
13、造方法。.抽象类中可以有普通成员变量,接口中没有普通成员变量.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非 抽象的普通方法。.抽象类中的抽象方法的访问类型可以是public, protected和(默认类型,虽然eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。.抽象类中可以包含静态方法,接口中不能包含静态方法.抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可 以任意,但接口中定义的变量只能是public static final类型,并且默认即为public
14、 static final类型。. 一个类可以实现多个接口,但只能继承一个抽象类。Final1、final修饰的类不能被继承。、Sting就是一个被final修饰的类,我们只能用,不能被继承、final不仅可以修饰类,还可以修饰变量,被 final修饰的变量就是一个常量,只能赋值一次,修饰属性,属性不可变,修饰方法,方法不可覆盖注意final和finally的区别,final是修饰类或者变量,finally是在异常处理中使用,如:Try catch () finally。中,finally的作用一般用于必须处理的事情,如关闭连接String、Stringbuffer及 StringBulide
15、r的区另在执行速度方面的比较:StringBuilder StringBuffer StringStringBuilder :线程非安全的 StringBuffer:线程安全的String :字符串常量 StringBuffer :字符创变量 StringBuilder :字符创变量 总结: 1.如果要操作少量的数据用=String.单线程操作字符串缓冲区下操作大量数据 =StringBuilder.多线程操作字符串缓冲区下操作大量数据 =StringBuffer正则表达式Length属性和length()方法String :有 length() 方法,没有length 属性数组:有lengt
16、h属性,没有length()方法异常的种类异常大体分为 编译异常 和 运行异常 两类( Exception 各种异常的根类)ArithmeticException 算数运算错误异常ArrayIndexOfOutBoundsException 数组下标越界NullPointException 空指针异常NumberFormatException 字符串转换成数字异常ClassCastException - 类型强制转换异常。throws,throw,try,catch,finally 分别代表什么意义?try :指定一块预防所有“异常”的程序。catch:紧跟在try程序后面,应包含一个 cat
17、ch子句来指定你想要捕捉的“异常”的类型。throw :用来明确地抛出一个“异常”。throws :标明一个成员函数可能抛出的各种“异常”。Finally:不管发生什么“异常”都被执行一段代码。JSP中九大内置对象request请求对象类型 javax.servlet.ServletRequest作用域Requestresponse响应对象类型 javax.servlet.SrvletResponse作用域PagepageContext页面上下文对象类型 javax.servlet.jsp.PageContext作用域Pagesession会话对象类型 javax.servlet. HYPER
18、LINK http:/http.HttpSession http.HttpSession作用域Sessionapplication应用程序对象类型 javax.servlet.ServletContext作用域Applicationout输出对象类型 javax.servlet.jsp.JspWriter作用域Pageconfig配置对象类型 javax.servlet.ServletConfig作用域Pagepage页面对象类型 javax.lang.Object作用域Pageexception例外对象类型 javax.lang.Throwable作用域pageAjax 的优势1. 无刷新更
19、新数据。AJAX最大优点就是能在不刷新整个页面的前提下与服务器通信维护数据。这使得Web应用程序更为迅捷地响应用户交互,并避免了在网络上发送那些没有改变的信息,减少用户等待时间,带来非常好的用户体验。2. 异步与服务器通信。AJAX 使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。优化了 Browser 和 Server 之间的沟通, 减少不必要的数据传输、 时间及降低网络上数据流量。3. 前端和后端负载平衡。AJAX 可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担, AJAX
20、 的原则是“按需取数据”,可以最大程度的减少冗余请求和响应对服务器造成的负担,提升站点性能。4. 基于标准被广泛支持。AJAX 基于标准化的并被广泛支持的技术,不需要下载浏览器插件或者小程序,但需要客户允许 JavaScript 在浏览器上执行。随着Ajax 的成熟,一些简化 Ajax 使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript 的用户提供替代功能。5. 界面与应用分离。Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离),有利于分工合作、减少非技术人员对页面的修改造成的WEB应用程序错误、提高效率、也更加适用于现在的发布系统
21、。构造器本质默认的构造器本质是一个无参数,静态的,被final 修饰的方法( final 修饰的方法不能被重写,不能被继承)Error与Exception有什么区另U?Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。java 中有几种方法可以实现一个线程有两种实现方法,分别是继承 Thread (9red)类与
22、实现 Runnable接口用 synchronized( s?kr?na?zd) 关键字修饰同步方法多线程有几种实现方法? 同步有几种实现方法?多线程有两种实现方法,分别是继承Thread 类与实现 Runnable 接口同步的实现方面有两种,分别是synchronized,wait 与 notifywait(): 使一个线程处于等待状态,并且释放所持有的对象的 lock 。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException( 中断异常 )异常。notify(): 唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并
23、不能确切的唤醒某一个等待状态的线程,而是由 JVM 确定唤醒哪个线程,而且不是按优先级。Allnotity(): 唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。Set集合、List集合和Map集合的区别Set 中的对象不按特定方式排序,并且没有重复对象。但它的有些实现类能对集合中的对象按特 定方式 排序 , 例 如 TreeSet 类 , 它 可 以按 照默认 排序 , 也可 以 通过实现 java.util.Comparator 接口来自定义排序方式。List 中的对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象,如通过list
24、.get(i)方式来获得List集合中的元素。Map 中的每一个元素包含一个键对象和值对象,它们成对出现。键对象不能重复,值对象可以重复。Collection 和 Collections的区别。Collection 是集合类的上级接口,继承与他的接口主要有Set 和 List.Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢 ? 是用 =还是 equals()? 它们有何区别 ?看 set 里存的是基本类型还是引用类型基本类型用=,引用类型用equals“ =”和eq
25、uals 的区别“=”操作比较的是两个变量的值是否相等, 对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即堆栈中的内容是否相同。“equals ”equals 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。什么是 servlet?Servlet 是 SUN 推出的一套规范, 规定了如何用 Java 来开发动态网站。 也就是说, Java 可 以用来开发网站后台,但是要遵循一定的标准。Jsp中的标签有哪些Include 指令标签表示包含一个静态的或者动态的文件。语法:or注:1 、 page=path 为相对路径,或者代表相对路径的表达式。2 、 flush=tru
26、e 必须使用 flush 为 true ,它默认值是false。3、子句能让你传递一个或多个参数给动态文件,也可在一个页面中使用多个 来传递多个参数给动态文件。Forward 指令 标签表示重定向一个静态html/jsp 的文件,或者是一个程序段。语法:or 注:、 page=path 为一个表达式,或者一个字符串。、 name 指定参数名, value 指定参数值。参数被发送到一个动态文件,参数可以是一个或多个值,而这个文件却必须是动态文件。要传递多个参数,则可以在一个JSP:件中使用多个将多个参数发送到一个动态文件中。三、UseBean指令标签表示用来在 JSP页面中创建一个BEAN实例并
27、指定它的名字以 及作用范围。语法:其中 typeSpec 有以下几种可能的情况:class=className | class=className type=typeName | beanName=beanName type=typeName | type=typeName |注:你必须使用 class或type,而不能同时使用 class和beanName。beanName表示 Bean 的名字,其形式为“ a.b.c”。四、 GetProperty 指令 ?pr ?p?ti 标签表示获取 BEAN 的属性的值并将之转化为一个字符串,然后将其插入到输出的页面中。语法:注:1、在使用之前,必须用来创建它。2、不能使用 来检索一个已经被索引了的属性。3、能够和 JavaBeans组件一起使用 ,但
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47318-2026燃烧性能试验质量损失测定
- GB/T 9978.10-2026建筑构件耐火试验方法第10部分:结构体系的特殊要求
- 劳动关系协调员基础知识三级试题附含答案解析
- 2026年环保工程师基础知识练习题及答案
- 垃圾暂存点卫生检查记录表
- 义眼植入术术后护理个案
- 《危险废物贮存设施环境风险防范技术规范》
- 电力运维安全风险防范
- 物流行业标准化制度
- 7.5 网络工具软件的使用
- T/CACM 1454-2023湿证诊断标准
- 2023年无锡市中考道德与法治试卷
- DBJD25-68-2019甘肃省安装工程预算定额地区基价第一册机械设备安装工程(含税)
- 2025年五类人员考试题及答案
- DB31∕T 8 2020 托幼机构消毒卫生规范
- 农村安全用电知识宣传培训
- 临床带教方法及技巧
- 保温炉安全操作规程模版(2篇)
- 2024年新版初中7-9年级历史新教材变化
- 吐酸中医护理
- 《唱歌 牧童(简谱、五线谱)》课件
评论
0/150
提交评论