- 博客(78)
- 收藏
- 关注
原创 vue demo
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>vue demo</title> </head> <body> <div id="content&qu
2018-10-27 00:00:17
394
原创 js笔记day02--强制类型转换
1、将其他数值转换为字符串有三种方式: toString()方法、String()函数、拼串 。 2、注意null和undefined这两个值没有toString()方法,如果调用他们的方法,会报错。 3、有三个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()。 –parseInt()和parseFloat()可以截取数字部分,使用起来更灵活
2017-10-08 20:42:36
438
原创 js笔记day01--基础语法
1、我们已经知道了一个完整的 JavaScript 实现包含了三个部分: ECMAscript、DOM和BOM。 2、JavaScript 是 严格区分大小写的。 3、JS 中的注释和 JavaJava Java的一致,分为两种: – 单行注释: // 注释内容 注释内容 – 多行注释: /* 注释内容 */ 4、所谓 标识符 ,就是指变量 、函数 、属性的名字, 或函数的参
2017-10-08 20:29:54
410
原创 线程池
第四种获取线程的方法:线程池,一个ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用Executors 工厂方法配置。 线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法。每个ThreadPoolExecutor 还维护着一些基本的统计数据
2017-10-01 21:47:26
437
原创 多线程“锁”要点
一个对象里面如果有多个synchronized方法,某一个时刻内,只要一个线程去调用其中的一个synchronized方法了,其它的线程都只能等待,换句话说,某一个时刻内,只能有唯一一个线程去访问这些synchronized方法 锁的是当前对象this,被锁定后,其它的线程都不能进入到当前对象的其它的synchronized方法 加个普通方法后发现和同步锁无关 换成两个对象后,不是
2017-10-01 21:41:31
436
原创 读-写锁ReadWriteLock
ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有writer,读取锁可以由多个reader 线程同时保持。写入锁是独占的。 ReadWriteLock 读取操作通常不会改变共享资源,但执行写入操作时,必须独占方式来获取锁。对于读取操作占多数的数据结构。ReadWriteLock 能提供比独占锁更高的并发性。而对于只读的数据结构,其中包含的不变性可以
2017-10-01 21:37:10
417
原创 Condition 控制线程通信
Condition 接口描述了可能会与锁有关联的条件变量。这些变量在用法上与使用Object.wait 访问的隐式监视器类似,但提供了更强大的功能。需要特别指出的是,单个Lock 可能与多个Condition 对象关联。为了避免兼容性问题,Condition 方法的名称与对应的Object 版本中的不同。 在Condition 对象中,与wait、notify 和notifyAll 方法对应的
2017-10-01 21:33:15
1210
原创 显示锁Lock
用于解决多线程安全的方式: synchronized:隐式锁 1. 同步代码块 2. 同步方法 jdk 1.5 后: 3. 同步锁 Lock(是一个显示锁,需要通过 lock() 方法上锁,必须通过 unlock() 方法进行释放锁) 一般为了养成良好的习惯,编写代码是上锁和放锁一起写,且为了保证放锁的代码一定能执行到,将放锁的代码置于finally中。以下为一段卖票的示例程
2017-10-01 21:27:39
400
原创 多线程创建方式三之实现Callable接口
Callable 接口 Java 5.0 在java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口 Callable 接口类似于Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是Runnable 不会返回结果,并且无法抛出经过检查的异常。 Callable 需要依赖FutureTask ,FutureTask 也可以用
2017-09-24 18:57:45
412
原创 闭锁机制
CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 闭锁可以延迟线程的进度直到其到达终止状态,闭锁可以用来确保某些活动直到其他活动都完成才继续执行: 确保某个计算在其需要的所有资源都被初始化之后才继续执行; 确保某个服务在其依赖的所有其他服务都已经启动之后才启动; 等待直到某个操作所有参与者都准备就绪再继续执行
2017-09-24 14:57:13
923
原创 锁分段机制
Java 5.0 在java.util.concurrent 包中提供了多种并发容器类来改进同步容器的性能。 ConcurrentHashMap 同步容器类是Java 5 增加的一个线程安全的哈希表。对与多线程的操作,介于HashMap 与Hashtable 之间。内部采用“锁分段”机制替代Hashtable 的独占锁。进而提高性能。 此包还提供了设计用于多线程上下文中的
2017-09-24 14:21:29
1242
原创 模拟CAS算法
/* * 模拟 CAS 算法 */public class TestCompareAndSwap { public static void main(String[] args) { final CompareAndSwap cas = new CompareAndSwap(); for (int i = 0; i < 10; i++) {
2017-09-24 14:06:50
459
原创 原子变量CAS算法
一、CAS算法 1、CAS (Compare-And-Swap) 是一种硬件对并发的支持,针对多处理器操作而设计的处理器中的一种特殊指令,用于管理对共享数据的并发访问。 2、CAS 是一种无锁的非阻塞算法的实现。 3、CAS 包含了3 个操作数: 3.1、需要读写的内存值V 3.2、进行比较的值A 3.3、拟写入的新值B 3.4、当且仅当V
2017-09-24 11:31:55
851
原创 volatile之内存可见性
1.内存可见性(Memory Visibility)是指当某个线程正在使用对象状态而另一个线程在同时修改该状态,需要确保当一个线程修改了对象状态后,其他线程能够看到发生的状态变化。 2.可见性错误是指当读操作与写操作在不同的线程中执行时,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。 3.我们可以通过同步来保证对象被安全地发布。除此之外我们也可以使
2017-09-23 22:40:34
309
原创 Java8新特性
主要内容: 1、Lambda 表达式 2、函数式接口 3、方法引用与构造器引用 4、Stream API 5、接口中的默认方法与静态方法 6、新时间日期API 7、其他新特性 (其中最为核心的为Lambda 表达式与Stream API)优点: 1、速度更快 2、代码更少(增加了新的语法Lambda 表达式) 3、强大的Stream API 4、便于并行 5、最大化减少空指
2017-09-17 17:01:23
245
原创 json数据的封装与解析
发送给前端的数据封装成json格式,然后前段进行解析。前端核心代码: function ask(){ //1创建ajax对象 var xhr = null; if(window.XMLHttpRequest){//高版本 xhr = new XMLHttpRequest(); }else{//低版本 xhr = new ActiveXObject
2016-09-11 13:19:29
9947
原创 ajax通过xml交互数据
页面代码:script type="text/javascript">function sendXML(){ //获取参数 var name = document.getElementById("nm").value; var pwd = document.getElementById("pwd").value; var xhr = null; if(windo
2016-09-11 00:52:34
1821
原创 Hibernate框架基础
Hibernate是一个开放源码的、非常优秀、成熟的O/R Mapping框架。它提供了强大、高性能的Java对象和关系数据的持久化和查询功能。 Hibernate 只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一条数据行。可以使用面向对象的方法操作此持久化类实例,完成对数据库表的插入、删除、修改等操作。 利用Hibernate操作数据库,我们通
2016-08-30 14:22:26
592
原创 Ajax技术小结
Ajax的英文全称为:Asynchronized JavaSccipt and XML,技术组成由JavaScript、DOM、CSS和XMLHttpRequest/ActiveXObj对象组成,其中XMLHttpRequest为高版本浏览器对应的Ajax核心类对象,ActiveXObj为低版本浏览器对应的Ajax核心类对象。Ajax属于点上通讯,变动的只有页面的部分,它本质有JS单开一个
2016-08-23 12:46:03
467
原创 使用log4j进行日志管理
使用log4j进行日志管理1、Log4j简介 作用:1、 跟踪代码的运行轨迹。2、 输出调试信息三大组成:1、 Logger类---生成日志。2、 Appender类---定义日志输出的目的地。3、 Layout类---指定日志输出的格式。2、Logger组件 日志共分为5种级别(ON开,OFF关这两个不计算在内),从高到底(从严重到轻微)排序为:
2016-08-23 11:15:18
2344
原创 session的钝化与活化技术
lHttpSessionActivationListener •实现此接口的JavaBean,可以感知自己被活化(从硬盘到内存)和钝化(从内存到硬盘)的过程。•如果需要同时保存Session中的JavaBean则JavaBean也要实现Serializable序列化接口。•实现此接口的JavaBean与HttpSessionBindingListener一样,不必配置到web.
2016-08-20 13:17:34
3612
原创 过滤器、监听器应用之网站访问量
public class CountFilter implements Filter { public CountFilter() { } public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain cha
2016-08-19 10:54:58
667
原创 设计模式之监听者模式
public class Cat { private String name; private CatListener cl; public Cat(String name) { super(); this.name = name; } public String getName() { return name; } public void climb()
2016-08-19 10:45:21
1737
原创 过滤器应用之全站压缩
全站压缩现在的网络,流量就是钱。所以,如果能在很少的流量的情况下,查看相同的数据内容,那何乐而不为呢?•实现方案: •用户在调用response.getOutputStream()或response.getWriter()时让获取自己的输出流对像,我们将信息写到事先准备好的缓存当中。 •当用户书写完毕,我们再调用自己提供的方法,获取缓存中的数据流。 •然后接着对数据进行压
2016-08-18 08:12:30
356
原创 拦截技术之过滤器
JavaEE中我目前知道的拦截技术有三种: (1)装饰模型 (2)动态代理 (3)过滤器过虑器能对客户的请求进行预先处理,然后再将请求转发给其他web组件。过滤器的过滤过程: 过滤器的技术要点: (1)可以拦截(在前端和Servlet之间),在doFilter方法中操作。 (2)可以拦截服务器中的任意资源 (3)该
2016-08-16 23:49:11
562
原创 Myeclipse下web项目改名,tomcat下不变的问题
根据需要,有时一个web项目要改项目名。这个简单,在myeclipse下重命名就可以。但重新发布到tomcat下,访问的时候还是原来的名字,刚改的名字访问不到。下面给个简单的解决方法:myeclipse中,你的项目名处右键点击,然后选择properities—->然后点击myeclipse—->web选项,修改web context-root名称为你要修改的项目名和前面重命名的名称一致就行了。再点击
2016-08-16 23:14:27
573
原创 dbUtils工具的使用
使用dbUtils需要倒入第三方包:commons-dbutils-1.4.jar(基本包)和commons-dbutils-ext.jar(扩展包)public class DbUtilsDemo { @Test//普通方式---不用dbUtils的查询 public void jdbcQuery() throws SQLException{ Connection c
2016-08-15 13:48:34
384
原创 c3p0数句库连接池的使用
public class C3p0Demo { @Test public void c3p0Demo() throws PropertyVetoException, SQLException{ ComboPooledDataSource pool = new ComboPooledDataSource(); pool.setUser("root");
2016-08-15 13:41:42
391
原创 将数据库数据导到excel(xls)中
import java.io.FileOutputStream;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.util.ArrayList;import java.util
2016-08-14 15:47:42
383
原创 DBCP数据库连接池的使用
包括DBCP数据库连接池和C3P0数据库连接池。DBCP数据库连接池的使用: 方式一:(纯java方式设置参数)@Testpublic void dbcpUse() throws SQLException{ BasicDataSource pool = new BasicDataSource(); //连接池 pool.setDriverClassName("co
2016-08-13 11:02:53
507
原创 本地线程管理、仿ThreadLocal
在实际项目中,通常有这样的要求,对于同一个线程内多次请求获取对象,对象要求必须为同一个(如数据多表库多表进行事务处理,请求的连接对象必须为同一个),这就要用到线程管理技术。线程管理,涉及到一个核心的类,java.lang.ThreadLocal,通过这个类来仅实现相应的功能。 代码演示:public class ThreadLocalDemo { private static ThreadLo
2016-08-12 13:19:09
280
原创 数据库连接池、动态代理
在web项目中,Java访问数据库采用的是多用户操作,需要频繁连接数据库,一种方法是来一个请求给一个操作对象,这种方法想法简单,但存在巨大隐患,如果访问量特别的大,数据库连接对象过多,可能导致奔溃。好的方法是,采用数据库连接时统一管理,包括数据库连接对象的个数限制以及使用后回收。说到管理,根据程序员习惯,拿到连接对象进行完操作后,一般会关闭连接对象,这就会产生一个问题,下一次别的用户再拿到回收后的关
2016-08-10 14:23:37
1201
原创 数据库大数据存储类型演示
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.
2016-08-09 16:22:22
891
原创 jdbc连接数据库演示(Statement、PrepareStatement,CallableStatement的演示)
在实际的开发中可能频繁用到数据库,这就要频繁创建连接对象以及频繁填充参数,一个好的方法是(类似实际框架中运用的方法)将参数以key-value的形式在src目录下(因为以后可能涉及到网络操作,方便获取)创建一个配置文件,将创建连接器的那部分代码做成一个工具类。示例如下: jdbc.properties的source视图(#表示注释): jdbc.properties的properties视图
2016-08-08 14:49:52
704
原创 使用DB Browser辅助配置数据库
首先,切换到DB Browser视图。 然后,在在如图黑色三角处右键,new,出现如下配置界面。 以配置MySQL为例,参数配置界面填充数据如图: 点击Test Driver按钮,弹出一个输入密码提示框,输入正确的数据库密码后,出现界面,表示配置成功。 然后,点击Next按钮,进入下一步,出现如下界面: 选择第三项,然后add刚才的数据库,finish完成。连接就建好了,出现如
2016-08-08 10:51:07
10415
原创 数据库事务
事物的特点: 原子性(atomicity):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。 一致性(consistency):在事务处理执行前后,数据库是一致的(数据库数据完整性约束)。 隔离性(isolcation):一个事务处理对另一个事务处理的影响。 持续性(durability):事务处理的效果能够被永久保存下来 。 一个事务只会有一个结果:要么成功、要么失败
2016-08-08 00:23:51
465
原创 数据库的连接方式、存储过程
连接方式:左关联、右关联、内关联、外关联、全关联 MySQL数据库只支持前三种。 左关联:左表为主表,显示左边全部的和右边与左边相同的 右关联:右表为主表,显示右边全部的和左边与右边相同的 内关联:只显示满足条件的!存储过程:保存在数据库上的一段可执行代码。类似于函数。 它的语法是: 它的语法是: Create procedure sp_name (参数..) Begin
2016-08-07 08:30:46
2239
1
原创 数据库设计(表与表之间的3种关系)
表与表之间一般存在三种关系,即一对一,一对多,多对多关系。 下面分别就三种关系讲解数据库相关设计的思路和思考过程;(1)一对一关系 例如,下面的一张表,保存了人的相关信息,有男有女,要求查处所有的夫妻。 sql代码:CREATE TABLE IF NOT EXISTS person( id INT PRIMARY KEY AUTO_INCREMENT, sname VARCHA
2016-08-07 02:31:35
126928
19
原创 MySQL数据库以及SQL语法基础、中文乱码
SQL—Structured Query Language结构化查询语言。一、DDL – 数据定义语言(Data Definition Language) 建库、建表、设置约束等: create\drop\alter二、DCL – 数据控制语言(Data Controll Language) 数据授权,收回授权 grant\revoke三、DML-数据操纵语言(Data Manipulati
2016-08-06 14:30:15
746
原创 简单版Java访问MySQL数据库
package cn.hncu.hello;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import org.junit.Test;public class DBHello { @Test public v
2016-08-05 23:20:21
400
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人