- 博客(28)
- 收藏
- 关注
原创 简述jsp原理
jsp是一种用于开发包含有动态页面的web界面技术。JSP原理1.在服务端有一个专门的JSP容器主要负责JSP页面的请求。当一个jsp页面第一次被请求时,容器会首先把jsp转化为servlet,在转换时,所有HTML标签将被包含在println()中,所有jsp元素转化为java代码。2.在转化的过程中,如果发现jsp有语法错误,转化会被终止,并向服务端和客户端传递错误信息。如果转换成...
2019-07-11 14:24:01 2034
原创 Servlet入门详解
一:Servlet概述servlet使用java语言编写的服务端程序,它能够接受客户端的请求并响应。servlet通常被部署到容器内,有容器连接到web服务器。当客户端请求时,web服务器会将请求传递给servlet容器,容器调用响应servlet。二:servlet原理执行原理:1.当服务器接收到客户端浏览器的请求后,会解析请求的url路径,获取访问的servlet的资...
2019-07-11 13:45:42 184
原创 Integer的取值范围
JVM会自动维护八种基本类型的常量池,int常量池中初始化-128~127的范围,所以当为Integer i=127时,在自动装箱过程中是取自常量池中的数值,而当Integer i=128时,128不在常量池范围内,所以在自动装箱过程中需new 128,所以地址不一样。例:public class IntegerTest { public static void main() {...
2019-07-11 09:11:06 9304
原创 JAVA一些编程技巧
1.Array转ArrayList当Array转化为AarrayListList<String> list = Arrays.asList(arr);Arrays.asList()会返回一个ArrayList,但是要特别注意,这个ArrayList中Arrays类的静态内部类,并不是java.util.ArrayList类。java.util.ArrayList类...
2019-07-10 23:45:59 526
转载 深入理解Java异常机制
java中的异常处理的目的在于通过使用少量的代码,使得程序有着强大的鲁棒性,并且这种异常处理机制会让你变得非常自信:你的应用中没有你没处理过的错误。处理异常的相关手法看起来是这么的难懂,但是如果掌握的话,会让你的项目收益明显,效果也会是立竿见影。如果我们不使用异常处理,那么我们在程序中必须检查特定的错误,并且在程序的很多地方去处理他,这样会带来低效率和高耦合。这是我们不希望看到的。有了异常处理...
2019-07-10 13:01:26 799
原创 乐观锁与悲观锁
1. 乐观锁乐观锁,认为操作不会产生并发问题(不会有其他线程对数据进行修改),因此不会上锁。但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS(compare and swap)算法实现。1.版本号机制:取出记录时,获取当前version,更新时,带上这个version,执行更新时,set version = newVersion where ...
2019-07-10 11:09:41 105
转载 Java线程池浅析
线程池的作用减少资源的开销 减少了每次创建线程、销毁线程的开销。 提高响应速度 每次请求到来时,由于线程的创建已经完成,故可以直接执行任务,因此提高了响应速度。 提高线程的可管理性 线程是一种稀缺资源,若不加以限制,不仅会占用大量资源,而且会影响系统的稳定性。 因此,线程池可以对线程的创建与停止、线程数量等等因素加以控制,使得线程在一种可控的范围内运行,不仅能保证系统稳定运...
2019-07-10 10:35:29 106
原创 连接数据库“The server time zone value is unrecognized or represents more than one time zone.“问题解决
java.sql.SQLException中:服务器时区值'??? EE×??±??' 。无法识别或代表多个时区如果要利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更具体的时区值。 这是由于数据库和系统时区差异所造成的,在JDBC连接的URL后面加上serverTimezone=GMT即可解决问题,如果需要使用GMT + ...
2019-07-06 14:56:28 2882
原创 单例模式(线程安全)
一:利用voliate和synchronize实现voliate下实现可见性,保证getInstance返回的是初始化完全的对象。 在同步之前进行null检查,以尽量避免进入相对高昂的同步块。 直接在class级别进行同步public class Singleton { private static volatile Singleton singleton = null; priv...
2019-03-31 20:36:08 144
原创 java的几种文件拷贝方式
Java几种拷贝文件的方式一.几种常见的方式利用java.io库,直接为源文件创建一个fileInputStream读取,然后为目标文件创建一个FileOutputStream写入 利用java.nio类库提供的transfer和transform方法实现。 Java标准类库实现的Files.copy();...
2019-03-31 20:19:41 491
原创 使用java异常机制的一些小建议
catch具体的异常,不要用Exception 慎用e.printstacktrace(),尽量记录到日志。 能处理的异常尽量早捕获处理,不能的就抛给上层。 不要生吞异常,即将一大段代码放入try中,不知道会发生什么异常就将其全部包裹起 来。 不要用异常进行逻辑行为的控制。 异常特别消耗性能,不要大篇幅使用trycatch。...
2019-03-25 20:47:16 123
原创 NoClassDefFoundError与ClassNotFoundException的区别
NoClassDefError是一个错误,而ClassNotFoundException是一个异常,在java中对于错误和异常的处理机制是不同的,我们可以从异常中恢复程序,而不能从错误中恢复程序。ClassNotFoundException产生的原因:Java支持从Class.forName方法来动态地加载类,任意一个类的类名如果被作为参数传递给这个方法,都将导致该类被加载到JVM虚拟机内...
2019-03-25 20:24:45 652
原创 JIT入门
一:概念JIT即时编译器,当虚拟机发现某个方法或代码块运行特别频繁时,就会把这些代码认定为热点代码,为了提高热点代码的运行效率,在运行时,虚拟机将会把这些代码编译成与本地平台的相关带代码,并进行各层次的优化。二:JVM运行原理要了解JIT首先要了解JVM编译运行过程。三:为什么要使用JIT编译器与解释器:当程序需要迅速启动和执行的时候,解释器...
2019-03-25 19:31:40 268
原创 java平台无关性的理解
Java本身是面向对象的语言,最显著的两个特征:一次编译,到处运行,跨平台能力。 垃圾回收机制,程序员不需要自己操心内存的分配回收。我们开发的java源代码,首先通过javac编译成为字节码,然后再运行时,通过虚拟机内嵌的解释器,将字节码转化为最终的机器码。Java通常分为编译期和运行期。Java的编译实际上是把java源码编译为.Class的字节码,而不是可以直接执行的机器代码。运行时,...
2019-03-25 14:48:09 1437
原创 浅谈asList
数组转化为List是在编程中经常用到的问题,我们经常需要使用Array的asList()函数进行转化,但在使用时,经常会遇到一些问题,有一些问题需要我们注意。1.由asList()转化而来的List底层表示的数组,因此不能调整尺寸。 enum number{one,two,three,four} public static void main(String[] args) ...
2018-12-10 14:29:13 345 2
转载 深入理解java String 类
一、String类想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码:public final class String implements java.io.Serializable, Comparable<String>, CharSequence{ /** The value is used for character...
2018-12-09 02:02:07 158
原创 浅谈String类
在java中,字符串属于对象,java提供了String类操作和创建对象,对String类进行了充分的优化,使用起来更加高效。 1.String对象是不可变的,String类中每一个修改String值的方法实际上都是创建了一个全新的对象,以包含修改后的字符串内容。而最初的对象并未改变,若String值没有改变,则返回原对象。 2.当String对象作为函数的参数调用时,...
2018-12-09 01:25:03 144
原创 spring的AOP事务
一:事务事务的并发问题:脏读,不可重复读,幻读事务的隔离级别:读未提交,读已提交,可重复读,串行化二:spring封装了事务的代码事务操作:打开事务,提交事务,回滚事务事务操作对象:因为在不同平台,操作事务的代码各不相同,spring提供了一个接口 PlatformTransactionMangerspring中事务的传播行为三:spring的事务配置步骤
2017-10-31 00:42:40 502
原创 spring整合数据库连接池
1.spring中提供了一个可以操作数据库的对象,对象封装了JDBC技术封装spring内置的连接池2.spring整合c3p0数据库连接池导入包:com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar mysql-connector-java-5.1.7-bin.jar将数据库的连接信
2017-10-31 00:16:28 537
原创 spring中的AOP
二:spring实现AOP原理1.动态代理:被代理对象必须实现接口,才能产生代理对象。如果没有接口则不能实现代理技术。2.cglib代理:第三方代理技术,可以对任何类进行代理,代理的原理是对目标对象的继承代理,如果目标对象被final修饰,那么该类无法被cglib代理。三:aop名词学习四
2017-10-30 23:40:16 203
原创 spring注解配置
用注解配置spring一:步骤1. 导入jar包2. 为主配置文件引入新的命名空间(约束)3. 开启使用注解代理配置文件 4. 在类中进行注解配置。 二:具体配置方法1. 将对象注册到容器 @Component(“user”) @Service(“user”) service 层 @Controller(“user”)
2017-10-30 23:34:04 229
原创 spring配置详解
Spring中的配置详解一:Bean元素 id:bean的名字。 在约束中采用ID的约束:唯一,必须以字母开始,可以使用字母,数字,连字符,下划线,句号,冒号但不能出现特殊字符。 name:bean的名字。没有采用ID的约束。name中可以出现特殊字符,且可以不唯一。二:bean的属性范围(scope属性) singleton(默认值):单例对象,被标示为单
2017-10-30 20:38:37 328
原创 BeanFactory与ApplicationContext
BeanFactory接口: 1.Spring原始接口,针对原始接口的实现类功能简单。 2.BeanFactory接口实现类的容器,特点是每次获得对象时才会创建对象。ApplicationContext: 1.每次启动容器时就会创建容器中配置的所有对象,并提供更多功能。在web开发中,使用applicationContext,在资源匮乏的环境下使用Bea
2017-10-30 20:15:12 164
原创 配置spring约束
一:导入本地约束在eclipse中点击:Window------>Preference------->XML CataLog-------->add点击File System 在本地选择导入schema文件,并在key type下选择schema location。二:在sping配置文件下导入1.在spring配置文件下输入2.在desig
2017-10-30 15:56:53 419
原创 spring初步配置
Spring配置:步骤一:下载spring开发包官网:http://spring.io/下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/解压后目录: *docs: API和开发规范。 *lib :jar和源码 *schema约束步骤二:导入包
2017-10-30 15:48:03 245
原创 MYSQL多表查询
表与表之间的关系说的就是表与表数据之间的关系1. 一对多常见实例:班级与学生,部门与员工一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。2. 多对多常见实例:学生与课程,人与角色多对多建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为键指向各自一方的主键。(就是将一个多对多,拆分成两个多对多)。 声明外键
2017-10-29 14:44:34 291
原创 [Err] 1366 - Incorrect string value: '\xE8\x81\x94\xE6\x83\xB3' for column 'pname' at row 1解决方法
出现 err1366 的原因:在使用中文数据时数据库的编码问题。解决方案1,改变数据库的编码 例:set names gbk;2.在建表时,在需要中文数据的列后添加charset utf8...
2017-10-29 02:02:26 6246
原创 ActiveMq的基本使用
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。主要特点:1. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP2. 完全支持JMS1.1和J2EE 1.4规范3. 对Spring
2017-10-28 14:37:58 373
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人