09 2016 档案
摘要:锁机制最大的改进之一就是ReadWriteLock接口和它的唯一实现类ReentrantReadWriteLock。这个类有两个锁,一个是读操作锁,另一个是写操作锁。使用读操作锁时可以允许多个线程同时访问,但是使用写操作锁时只允许一个线程进行。在一个线程执行写操作时,其他线程不能够执行读操作。 下面
阅读全文
摘要:1. indexOf()函数是一个执行速度非常快的函数,可以用其与subString()实现高效的字符串分割,比内置的要高效。 2. charAt()方法也是高效率的函数,可以用其实现高效的startsWith()和endsWith()方法,比内置的要高效许多。 3. String的concat()
阅读全文
摘要:本文转自http://www.cnblogs.com/gaopeng527/p/4913706.html,感谢作者 当需要在并发程序中使用数据集合时,必须要谨慎地选择相应的实现方式。大多数集合类不能直接用于并发应用,因为它们没有对本身数据的并发访问进行控制。如果一些并发任务共享了一个不适用于并发任务
阅读全文
摘要:本文转自http://www.cnblogs.com/gaopeng527/p/4448105.html 感谢作者 分页查询 通过JDBC实现分页查询的方法有很多种,而且不同的数据库机制也提供了不同的分页方式,在这里介绍两种非常典型的分页方法。 通过ResultSet的光标实现分页,优点是在各种数据
阅读全文
摘要:分页是一个被讲到烂掉的话题,今天我再拾起来踹几脚吧 (Hibernate的分页做得很好很强大,用的人都知道 ,这个就不用再说了) 1.为什么要分页? 首先是数据量太大会影响查询和传输的性能,关键是对用户来说一下看到数万条记录也不是那么友好。 2.有哪些分页技术? a)存储过程分页 在数据库中创建一个
阅读全文
摘要:jdbc如何锁定某一条数据或者表,不让别人操作? 只有并发的时候才会有死锁,你要把多个涉及到这个表的地方检查一下,排除死锁可能。 为了避免修改冲突,所以我要锁定。请问该如何实现 答: 例如:select * from t_user for update; 追问 如何解锁? 追答 当你事物提交后就能够
阅读全文
摘要:锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一。本章将对MySQL中两种使用最为频繁的存储引擎MyISAM和Innodb各自的锁定机制进行较为详细的分析。 MySQL锁定机制简介 数据库锁定机制简单来说就是数据库为了保证数据的一致性而
阅读全文
摘要:1.当Jdbc程序向数据库获得一个Connection对象时,默认情况下这个Connection对象会自动向数据库提交在它上面发送的SQL语句。 2.如果想让多条sql语句,共用一个事物,则需要关闭jdbc默认的事务提交, 设置事务的提交方式为非自动提交: conn.setAutoCommit(fa
阅读全文
摘要:1.多线程安全问题 1)synchronized关键字:如何加锁的问题,选择synchronized方法还是synchnized代码块。 选择哪个锁问题,this对象,还是class对象(针对static方法或者变量),或者object对象 推荐使用同步代码块,因为加锁灵活,可以自己选择使用哪个锁,
阅读全文
摘要:Why ThreadLocal? 无论如何,要编写一个多线程安全(Thread-safe)的程序是困难的,为了让线程共享资源,必须小心地对共享资源进行同步,同步带来一定的效能延迟,而另一方面,在处理同步的时候,又要注意对象的锁定与释放,避免产生死结,种种因素都使得编写多线程程序变得困难。 尝试从另一
阅读全文
摘要:我有几点不太明白的,望各位大侠指教下。1、j2ee的应用中,有一个用户请求就会启动一个线程。而如果我们把connection放在Threadlocal里的话,那么我们的程序只需要一个connection连接数据库就行了,每个线程都是用的connection的一个副本,那为什么还有必要要数据库连接池呢
阅读全文
摘要:1.jdbc连接数据库,就这样子 Class.forName("com.mysql.jdbc.Driver"); java.sql.Connection conn = DriverManager.getConnection(jdbcUrl); 2.通过传入jdbc url用Drivermanager
阅读全文
摘要:工程->右键properties->add external jars
阅读全文
摘要:1.经常用到的方法,可以声明为static,这样省去了每次new对象的内存空间,因为非static方法,需要new对象才能调用此方法。但因此也产生多线程访问线程安全问题 比如: 2.当一个方法或者变量需要在类加载器加载类的时候,就需要初始化时,声明为static。Static变量在项目启动时就分配内
阅读全文
摘要:1.锁,保证的是被锁的代码,一次执行完毕才能被其他线程执行,锁保证了一个线程执行过程中不被其他线程打断。以保证数据的准确性。 2。数据的读写过程,是有冲突的,当一个线程正在读数据,另一个线程正在写同一个数据,就有可能导致数据不准确,造成脏数据。就要保证读写分开时间段。即加锁。 3.如果想要保证共享对
阅读全文
摘要:本实验主要考察多线程对单例模式的操作,和多线程对同一资源的读取,两个知识。实验涉及到三个类: 1)一个pojo类Student,包括set/get方法。 2)一个线程类,设置student的成员变量age和name的值为111和111 3)另一个线程类,设置student的成员变量age和name的
阅读全文
摘要:1.preparestatement预编译,预编译指的是DB的编译器,会对此sql语句提前编译。然后将预编译的结果缓存到数据库中,下次执行时替换参数直接执行编译过的语句。 记住:数据库也是有编译器的,编译的是sql执行命令啊 。 所以每次执行sql语句时,如果每次都要数据库编译器编译sql语句,当然
阅读全文
摘要:1.对象可以携带更多信息 2.对象的方法不占用堆的存储空间 3.对象的状态指的是成员变量的值 4.对象的方法操作的也都是成员变量信息,最后返回的结果也都赋值给成员变量。 5.所以,new对象时,就会在堆中创建内存空间,创建的空间包括各个成员变量类型所占用的内存空间 6.关于成员变量初始值问题,设不设
阅读全文
摘要:1. 每个基本类型封装类都有将string转换为基本数据类型的方法 对于非常大的数字请使用Long,代码如下 int age = Integer.parseInt("10"); long id = Long.parseLong("190"); // 假如值可能很大. 2.将char字符转换为stri
阅读全文
摘要:基本数据类型对象包装类:是按照面向对象思想将基本数据类型封装成了对象。 好处: 1:可以通过对象中的属性和行为操作基本数据。 2:可以实现基本数据类型和字符串之间的转换。 关键字 对应的类名 byte Byte short Short paserShort(numstring); int Integ
阅读全文
摘要:特点:字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中。 String s1 = "abc"; // s1指向的内存中只有一个对象abc。 String s2 = new String("abc"); // s2指向的内容中有两个对象abc、new 。 System.out.printl
阅读全文
摘要:1.什么叫多线程程序? 答:一个进程至少有一个线程在运行,当一个进程中出现多个线程时,就称这个应用程序是多线程应用程序。 java编写的程序都是多线程的,因为最少有俩线程,main主线程和gc线程。 每个线程在栈区中都有自己的执行空间,自己的方法区、自己的变量。 线程为cpu增加了一条执行路径。 2
阅读全文
摘要:常见的软件包: java.lang : language java的核心包,Object System String Throwable jdk1.2版本后,该包中的类自动被导入。 java.awt : 定义的都是用于java图形界面开发的对象。 javax.swing: 提供所有的windows桌
阅读全文
摘要:通常equals,toString,hashCode,在应用中都会被复写,建立具体对象的特有的内容。 之所以有hashCode方法,是因为在批量的对象比较中,hashCode要比equals来得快,很多集合都用到了hashCode,比如HashTable。 两个obj,如果equals()相等,ha
阅读全文
摘要:多 态★★★★★(面向对象特征之一):函数本身就具备多态性,某一种事物有不同的具体的体现。 体现:父类引用或者接口的引用指向了自己的子类对象。//Animal a = new Cat();父类可以调用子类中覆写过的(父类中有的方法) 多态的好处:提高了程序的扩展性。继承的父类或接口一般是类库中的东西
阅读全文
摘要:单例设计模式:★★★★★ 解决的问题:保证一个类在内存中的对象唯一性。 比如:多程序读取一个配置文件时,建议配置文件封装成对象。会方便操作其中数据,又要保证多个程序读到的是同一个配置文件对象,就需要该配置文件对象在内存中是唯一的。 Runtime()方法就是单例设计模式进行设计的。 如何保证对象唯一
阅读全文
摘要:静态代码块:就是一个有静态关键字标示的一个代码块区域。定义在类中。作用:可以完成类的初始化。静态代码块随着类的加载而执行,而且只执行一次(new 多个对象就只执行一次)。如果和主函数在同一类中,优先于主函数执行。静态代码块、构造代码块、构造函数同时存在时的执行顺序:静态代码块 -->构造代码块 --
阅读全文
摘要:java分了5片内存。 1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。 栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 ); 只要数据运算完成所在的区域结束,该数据就会被释放。 堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。 1:每一个实
阅读全文
摘要:环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再
阅读全文
摘要:4,变量:其实就是内存中的一个存储空间,用于存储常量数据。 作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。 特点:变量空间可以重复使用。 什么时候定义变量?只要是数据不确定的时候,就定义变量。 变量空间的开辟需要什么要素呢? 1,这个空间要存储什么数据?数据类型。 2,这个空
阅读全文
摘要:一、定义以及相关概念 互联网的产生带来了机器间通讯的需求,而互联通讯的双方需要采用约定的协议,序列化和反序列化属于通讯协议的一部分。通讯协议往往采用分层模型,不同模型每层的功能定义以及颗粒度不同,例如:TCP/IP协议是一个四层协议,而OSI模型却是七层协议模型。在OSI七层协议模型中展现层(Pre
阅读全文
摘要:edis 有三个主要使其有别于其它很多竞争对手的特点: Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的; Redis相比许多键值数据存储系统有相对丰富的数据类型; Redis可以将数据复制到任意数量的从服务器中; Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性
阅读全文
摘要:Redis Java连接操作 连接到Redis服务器 现在,让我们来编译和运行上面的程序来测试连接Redis服务器。你可以根据实际情况改变路径。这里假设jedis.jar的当前版本在当前路径中可用 Redis和Java字符串实例 现在,让我们编译并运行上述程序。 Redis和Java列表示例 现在,
阅读全文
摘要:Redis介绍 本文转自http://blog.csdn.net/prety_boy/article/details/51453786 感谢作者 Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢
阅读全文
摘要:为客户开发的一个绩效系统,采用了java web的开发方式,使用了一些spring mvc, mybatis之类的框架。相比于oracle ebs的二次开发,这种开发更加灵活,虽然和ebs集成的时候遇到一些问题,但是最后也都解决了。 在部署的时候,客户要求要能同事承受一两千人在线,相对于客户公司的总
阅读全文
摘要:Pat 的疑惑 最近关注于 Spring 提供的数据访问技术,对于 Spring 相关的这几个项目有何不同我不是太明白: Spring-DAO (http://docs.spring.io/spring/docs/2.0.8/reference/dao.html) Spring-ORM (http:
阅读全文
摘要:本文转自http://elim.iteye.com/blog/2016305 感谢作者 Resource 所有的资源都被可以通过 InputStream 这个类来获取,所以也屏蔽了资源的提供者 ResourceLoader 接口负责资源的统一加载 所有的资源都被可以通过 InputStream 这个
阅读全文
摘要:方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); ac.getBean("beanId"); 说明:这种
阅读全文
摘要:要想很好理解这三个上下文的关系,需要先熟悉spring是怎样在web容器中启动起来的。spring的启动过程其实就是其IoC容器的启动过程,对于web程序,IoC容器启动过程即是建立上下文的过程。 spring的启动过程: 首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上
阅读全文
摘要:1.什么叫beanfactory? spring使用BeanFactory来实例化、配置和管理对象,但是它只是一个接口,里面有一个getBean()方法。我们一般都不直接用BeanFactory,而是用它的实现类ApplicationContext,这个类会自动解析我们配置的applicationC
阅读全文
摘要:(3) Spring的组成 ① Spring Core:核心容器,BeanFactory提供了组件生命周期的管理,组件的创建,装配,销毁等功能 SpringContext:ApplicationContext,扩展核心容器,提供事件处理、国际化等功能。它提供了一些企业级服务的功能,提供了JNDI,E
阅读全文
摘要:一.对ThreadLocal的理解 ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 这句话从字面上看起来很容易理解,但是真正理解并不是那
阅读全文
摘要:本文介绍两种主线程等待子线程的实现方式,以5个子线程来说明: 1、使用Thread的join()方法,join()方法会阻塞主线程继续向下执行。 2、使用Java.util.concurrent中的CountDownLatch,是一个倒数计数器。初始化时先设置一个倒数计数初始值,每调用一次count
阅读全文
摘要:1.多线程访问的共享资源存在线程安全问题, 无外乎访问两种共享资源。 1)多线程访问方法区数据。存在线程安全问题,通过加锁 2)多线程访问实例变量:被访问对象是单例时存在线程安全,被访问对象是多例时,是线程安全的。 来说说静态变量、实例变量、局部变量在多线程下的安全问题吧! (一)验证静态变量的线程
阅读全文
摘要:1.局部变量的生命周期是在一个大括号内,即一个所处块结束。如循环体内定义的int j; 学过C++的同学都知道局部变量和全局变量的区别,局部变量的生命周期是从创建开始到所处的块结束就被回收,而全局变量的生命周期是从创建开始到程序结束。而在最近我在学习java的时候让我对局部变量在循环里的生命周期有了
阅读全文
摘要:1.static只能修饰类的成员变量,不能修饰方法里的局部变量。 因为static是在类加载时候将成员变量存储进方法区的。 加载类的时候,是不去执行方法里的函数的。所以不会馆方法里的代码,自然就不会读取到static变量了。 如,这个代码就是错误的 2.new一个对象或者加载一个类的时候,是不是执行
阅读全文
摘要:long end = System.currentTimeMillis();
阅读全文
摘要:1.static的作用 答:将成员变量或方法存储进方法区。因为方法区能保证数据只存在一份,只会加载一次(类加载器加载类的时候才加载一次) 注:static Object obj = new Object();方法区存储的是obj这个引用变量,而不是Obejct这个被创建的对象,对象依旧存储在堆中。只
阅读全文
摘要:异常处理方法 对于非运行时异常(checked exception),必须要对其进行处理,否则无法通过编译。 处理方式有两种: 1.使用try..catch..finally进行捕获; 2.在产生异常的方法声明后面写上throws 某一个Exception类型,如throws Exception,将
阅读全文
摘要:Java中的许多对象(一般都是具有父子类关系的父类对象)在运行时都会出现两种类型:编译时类型和运行时类型,例如:Person person = new Student();这行代码将会生成一个person变量,该变量的编译时类型是Person,运行时类型是Student。 说明一下编译时类型和运行时
阅读全文
摘要:1.像windows/linux这种操作系统中,自带jvm么?以方便java程序的运行? 答:是的,一般操作系统都自带jvm的。但不带jdk,也就是说java的运行环境有,但编译环境没有。 1.java程序运行时分哪几种内存区域? 答:大概分为5种内存区域。这5种内存区域,又分为共享区内存,线程私有
阅读全文
摘要:1.Java内存泄漏是每个Java程序员都会遇到的问题,程序在本地运行一切正常,可是布署到远端就会出现内存无限制的增长,最后系统瘫痪,那么如何最快最好的检测程序的稳定性,防止系统崩盘,作者用自已的亲身经历与各位网友分享解决这些问题的办法。 2.嵌入式设备 3.在进入测试过程中,我们发现有一个程序模块
阅读全文
摘要:1.既然 Java 的垃圾回收机制能够自动的回收内存,怎么还会出现内存泄漏的情况呢?这个问题,我们需要知道 GC 在什么时候回收内存对象,什么样的内存对象会被 GC 认为是“不再使用”的。 Java中对内存对象的访问,使用的是引用的方式。在 Java 代码中我们维护一个内存对象的引用变量,通过这个引
阅读全文
摘要:数据库的读写分离的好处? 1. 将读操作和写操作分离到不同的数据库上,避免主服务器出现性能瓶颈; 2. 主服务器进行写操作时,不影响查询应用服务器的查询性能,降低阻塞,提高并发; 3. 数据拥有多个容灾副本,提高数据安全性,同时当主服务器故障时,可立即切换到其他服务器,提高系统可用性; 读写分离的基
阅读全文
摘要:什么是存储引擎? 关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存
阅读全文
摘要:1.表关联是可以利用两个表的索引的,如果是用子查询,至少第二次查询是没有办法使用索引的。 2.在where子句中指定连接条件 3.SQL中优化中有一条: 将子查询转换为连接查询。 原因:子查询会多次运算查询,连接查询利于优化器优化,而且可以使用多线程查询各个连接子句。 4.四、 子查询 在某些情况下
阅读全文
摘要:1。为什么Set及子类中没有提供随机取元素的方法? 在List中提供了get等方法来实现随机取在容器中的元素,但是,为什么在Set中没有提供呢,如果要在Set及子类中实现随机读取元素,该怎么操作,不可能自己去遍历或将Set存到List中去吧。 set是一个集合,集合就是一堆东西的意思,set中的东西
阅读全文
摘要:前提条件:假设有两个表,一个是学生表,一个是学生成绩表。 表的数据有: 一、内连接-inner jion : 最常见的连接查询可能是这样,查出学生的名字和成绩: select s.name,m.mark from student s,mark m where s.id=m.studentid 上面就
阅读全文
摘要:1.什么是表连接? 答:比如两张表,要获取的信息来自两张表,就需要通过外键的形式进行两张表的连接。最后产后组合信息。 表连接是通过join连接的。表连接说白了就是产生一个大表。表连接也都是用于查询上的,用户查询获得多种信息。 2.什么情况下用到分组? 答:涉及到每个“xxx字段”时,就是典型分组,要
阅读全文
摘要:一.索引基础知识 1.什么叫数据库索引? 答:索引是对数据库中一列或者多列的值进行排序的一种数据结构。重点:对列的值进行排序的数据结构。 使用索引可以快速访问数据库中的记录 2.索引的主要用途是什么? 答:执行select语句时候会使用索引,索引主要用来提高查询性能。由于索引是经过某种算法优化过的,
阅读全文
摘要:4.2 在代码中直接调用Class.forName(String name)方法,到底会触发那个类加载器进行类加载行为? Class.forName(String name)默认会使用调用类的类加载器来进行类加载。 如类 com.example.Outer引用了类 com.example.Inner
阅读全文
摘要:1.不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址。 2.Java中对象是采用new或者反射的方法创建的 3.GC为了能够正确释放对象,会监控每个对象的运行状况,对他们的申请、引用、被引用、赋值等状况进行监控。 赋值,内存是可以赋值的,对应于object.setValue("1") 4.
阅读全文
摘要:内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory; 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。 memory
阅读全文
摘要:堆溢出: 报错: java.lang.OutOfMemoryError: Java heap space 栈溢出: 报错: java.lang.StackOverflowError Java内存管理机制 在C++ 语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到
阅读全文
摘要:1、 内存溢出的原因是什么? 内存溢出是由于没被引用的对象(垃圾)过多造成JVM没有及时回收,造成的内存溢出。如果出现这种现象可行代码排查: 一)是否App中的类中和引用变量过多使用了Static修饰 如public staitc Student s;在类中的属性中使用 static修饰的最好只用基
阅读全文
摘要:首先给一个简单的Java示例,源代码如下: 现在假设这两个java源文件已经被编译成了CLASS文件了,我们来看看java虚拟机怎么执行的。 Java虚拟机工作流程: 1.装载 描叙:Java虚拟机装载指定的CLASS文件, 结果:形成这个CLASS类的实例对象 过程:java虚拟机使用类装载器定位
阅读全文
摘要:1.通过子类来调用父类的静态字段,只会触发父类的初始化,但是这是要看不同的虚拟机的不同实现。 2.每个开发人员对Java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。 3.对JVM采用的双亲委派类加载机制 4.Java的连接
阅读全文
摘要:一.java反射基础 1.1 什么叫java反射? 答:程序运行期间,动态的获取类的基本信息。比如:创建对象,调用类的方法,获得类的基本结构。这样给程序设计提供了很大的灵活性。个人总结就是:根据动态需求,生成动态的响应。java的Class类是java反射机制的基础,反射也是让虚拟机加载指定类。这就
阅读全文
摘要:1.class.forName(mysql),这样更换数据库时,不需要更改程序代码,程序不需要重新编译就能运行。 因为反射是动态编译的,程序运行期间生成指定类的对象, 这样就可以程序运行期间生成不同的数据库驱动程序对象。省去了固定写死一个数据库驱动对象(通过new 构造函数的方法),造成每更换一个数
阅读全文
摘要:2. Java反射的作用? 假如有两个程序员,一个程序员在写程序的时需要使用第二个程序员所写的类,但第二个程序员并没完成他所写的类。那么第一个程序员的代码是不能通过编译的。此时,利用Java反射的机制,就可以让第一个程序员在没有得到第二个程序员所写的类的时候,来完成自身代码的编译。即动态编译!jav
阅读全文
摘要:首先,想要明白hashCode的作用,必须要先知道Java中的集合。 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素
阅读全文
摘要:8 transient是干嘛的 Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用 serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient
阅读全文
摘要:1.spring Security简要介绍 Spring Security以前叫做acegi,是后来才成为Spring的一个子项目,也是目前最为流行的一个安全权限管理框架,它与Spring紧密结合在一起。 Spring Security关注的重点是在企业应用安全层为您提供服务,你将发现业务问题领域存
阅读全文
摘要:HTTP请求报头: Authorization HTTP响应报头: WWW-Authenticate HTTP认证 基于 质询 /回应( challenge/response)的认证模式。 HTTP请求报头: Authorization HTTP响应报头: WWW-Authenticate HTTP
阅读全文
摘要:没有绝对的安全,这个话题很深, 下文都是自己的一些理解,水平有限,如有勘误,希望大家予以指正。 由于 RESTful Api 是基于 Http 协议的 Api,是无状态传输,所以 只要和用户身份有关的 请求 都会带上身份认证信息。(很多时候客户端事先并不知道某个 api 后期会不会加入身份判断,所以
阅读全文
摘要:restful它的核心是将所有的 Api 都理解为一个网络资源。把api映射成资源 restful它的核心是将所有的 Api 都理解为一个网络资源。把api映射成资源 把api映射成资源,把api映射成资源 1.浏览器支持http delete/put方法,添加HiddenHttpMethodFil
阅读全文
摘要:1.jsp页面form传递过来的值是在后台ishi通过name获得的而非ID。上传文字要用input type=text属性 <tr> <th>品牌:</th> <td><input class="common-text" name="productBrand" size="50" value="比
阅读全文
摘要:1.eclipse中开发的web项目怎么放到tomcat中? 记得开始学习Java Web的时候,首先用的是Eclipse开发,但是有一个问题始终没有弄明白,做好的Web项目是如何发布到Tomcat服务器上的呢?最后得到了一个结论,那就是Eclipse这个软件可能是将项目发布到了一个临时的目录,只有
阅读全文
摘要:1.在做使用struts2进行文件上传时总是出现 java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream于是google了一下,网上90%是说没导入commons-io包,但是我在项目
阅读全文
摘要:HashCode值 1. hashcode值是int的,64位。int hashCode()。 2. java object类默认的hashcode()计算方法是根据对象的内存地址来计算的。所以可由此来判断默认不重写hashcode()方法的两个对象是否相同。 3. 可重写obejetc 类的has
阅读全文
摘要:一、延迟加载 resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 延迟加载:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。
阅读全文
摘要:感谢原作者http://www.cnblogs.com/zhoumingming/p/5417014.html 注意每个标签必须按照顺序写,不然就会提示错误 顺序是 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLI
阅读全文
摘要:1.缓存的工作流程 缓存主要针对select查村语句作用的 1)第一次查询将数据写入缓存 2)第二次查询时,先看缓存中是否有,有,提取。 3)期间针对此缓存的任何insert/update/delet操作,都触发将缓存清空。 以mybatis的二级缓存为例,缓存流程都一样,不论一级缓存,还是二级缓存
阅读全文
摘要:本文转自:http://amcucn.iteye.com/blog/264457。感谢作者 近日在工作当中,需要用到上传图片的功能,然而自己平时学习的时候只会使用struts的上传功能,但因为项目并没有使用struts,而是spring mvc ,最后不得不另寻它路。通过google和百度,看到了一
阅读全文
摘要:1.mybatis二级缓存,指的的是将数据缓存,而非对象,而非获得的list。缓存将数据库中的数据,是数据,缓存到内存中。之后将数据每次重新加载到list中,所以每次生成的list对象都是不同的,list.hashcode()都不同。 开启二级缓存 1)、 在核心配置文件SqlMapConfig.x
阅读全文
摘要:1.jar包不兼容问题。主要是mybatis,spring jar包不兼容。同时jstl标签也需要jar包,是jstl.jar,standard.jar。 2.mybatis的mapper.xml映射文件,传入多个参数问题 第一种方案 DAO层的函数方法 Public User selectUser
阅读全文
摘要:mybatis的延迟加载和缓存技术开始 mybatis一级缓存 mybatis的二级缓存 mybatis默认是没有开启二级缓存的。 开启二级缓存需要在mybatis的全局配置文件sqlMapConfig.xml中加入 除了开启二级缓存开关外,还需要在各自的mapper.xml中开启二级缓存。 原理图
阅读全文
摘要:使用jdbc开发时有以下缺点 1,数据库连接,使用时就创建,不使用就释放,对数据库进行频繁连接开关和关闭,造成数据库资源浪费,影响数据库的性能 解决:使用数据库连接池管理数据库的连接 2,sql语句使用硬编码在java程序中,修改sql语句,就需要重新编译java代码,不利于系统维护 解决:把sql
阅读全文
摘要:1.spring配置datasource bean的时候,不同的数据库连接方式有有不同的datasource实现类。 比如采用c3p0数据库连接池,要用c3p0的datasource实现类 com.mchange.v2.c3p0.ComboPooledDataSource <bean id="dat
阅读全文
摘要:org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection 这个问题困扰许久,许久。原来只是data source的properties引入文件,el表达式前必须加jdbc 原文解决
阅读全文
摘要:spring中的ApplicationContexts可以被限制在不同的作用域。在web框架中,每个DispatcherServlet有它自己的WebApplicationContext,它包含了DispatcherServlet配置所需要的bean。DispatcherServlet 使用的缺省B
阅读全文
摘要:这Spring框架中,一旦把一个bean纳入到Spring IoC容器之中,这个bean的生命周期就会交由容器进行管理,一般担当管理者角色的是BeanFactory或ApplicationContext。认识一下Bean的生命周期活动,对更好的利用它有很大的帮助。 下面以BeanFactory为例,
阅读全文
摘要:spring的IOC容器能够帮我们自动new对象,对象交给spring管之后我们不用自己手动去new对象了。那么它的原理是什么呢?是怎么实现的呢?下面我来简单的模拟一下spring的机制,相信看完之后就会对spring的原理有一定的了解。 spring使用BeanFactory来实例化、配置和管理对
阅读全文
摘要:spring mvc和spring俩配置文件,其中都要配置扫描包。 <context:component-scan base-package="com.controller" /> <context:component-scan base-package="com.service;com.dao"
阅读全文
摘要:大牛请绕过,此文仅针对自己小白水平,对web程序的启动流程做个清晰的回顾。 一.使用spring等框架的web程序在Tomcat下的启动流程 1)Tomcat是根据web.xml来启动的。首先到web.xml 2)web.xml中负责启动spring和spring mvc。对应的启动配置文件分别是
阅读全文
摘要:当浏览器第一次加载资源的时候,返回一般为200,意思是成功获取资源,并会在浏览器的缓存中记录下max-age,第二次访问的时候:如果只是用浏览器打开,那么浏览器会去判断这个资源在缓存里有没有,如果有的话,会去判断max-age,看看过期没有,如果没有过期,则直接读缓存,根本不会和服务器进行交互,换句
阅读全文
摘要:一.HTTP协议基础 1.定义:HTTP是基于TCP连接的浏览器与服务器通信协议。(即传输层先用TCP三次握手建立连接,进而HTTP通信) 2.连接原理:先进行TCP建立端到端连接,然后发送和接受HTTP报文。 TCP(Socket)是端到端的连接,通过IP地址和端口号用于定位网络上两台主机的具体运
阅读全文
摘要:一.Tomcat安装 (1)先安装JDK,并配置环境变量JAVA_HOME。Tomcat服务器的配置需要JDK的JAVA_HOME环境变量。 并在系统path变量添加%JAVA_HOME%/bin。 (2)下载安装Tomcat安装文件,并配置CATALINA_HOME环境变量。 (3)测试是否安装成
阅读全文