- 浏览: 24873 次
- 性别:
最新评论
文章列表
http://localhost:8080/webDemo1/TestServlet?aaa=2&bbb=1,通过请求,我们可以获得相应的请求参数。注意,这个set集合的key是sting类型的,但是value是String类型的数组。
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Map<String, String[]> map = request.getParameterMa ...
丢失更新的解决方案(乐观锁+悲观锁)
- 博客分类:
- mysql
丢失更新: 当两个事物或多个事务都更新了同一条数据,但是这些事务彼此之间都不知道其他事务进行的修改,因此第二个更改覆盖了第一次的更改,说白了,就是事务A还没有提交之后,但是这个时候事务B更新了数据,那么事务A就丢失更新了。
解决方案: 乐观锁+悲观锁
悲观锁: 数据库的一种锁机制,悲观锁分成两种,分别是共享锁和排它锁
添加共享锁方式:select * from account lock in share mode ; 添加排它锁方式:select * from account for update;
下面说一下共享锁: 共享锁就是,例 ...
mysql的事务
- 博客分类:
- mysql事务资料更新
1 事务的4个特性 (必回,面试必考)
① 原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
② 一致性: 事务前后数据的完整性必须保持一致
③ 隔离性 ...
mysql 数据库基础知识整理
- 博客分类:
- mysql
首先将一下,如果你的mysql密码忘记了,那么通过下面的方式进行重置密码
1.停止mysql服务:
services.msc 进入到服务界面
2.在cmd>输入一个命令:
mysqld --skip-grant-tables (开启一个mysql服务,不需要进行认证.)
3.新打开一个cmd窗口
mysql -u root -p 不需要输入密码.就可以进入.
4.输入命令 show databases;查看数据库,输入命令 use mysql;使用mysql数据库。
5.修改密码 ...
自定义标签
- 博客分类:
- jsp+servlet
1 创建没有标签体的标签
1 首先创建一个jva类,去继承SimpleTagSupport,下面我们说一下SimpleTagSupport 中的方法的作用
* void setJspContext(JspContext pc) 这个方法中的参数就是pageContext的父类,这个方法是由服务器最先被调用的,然后我们得到我们的PageContext对象,也就是可以得到所有的web元素,根据需求,重写相应的方法。 * void setParent(JspTag parent) 设置父标签 * void setJs ...
1 jsp页面的三大指令 ① pege指令 (重点) 常用的 pageEncoding和contentType,其中 pageEncoding 是设置jsp页面的编码,给服务器看,然后服务器编译成正确的编码,contentType 和 response.setContentType的方法相同, 它的作用 1 就是完成相应字符流的编码,2 设置响应头,(其实设置了这个之后,也就是在jsp被编译成servlet之后,会加上response.setContentType(“text/html;charset=utf-8”)), 在jsp页面中如果设置了一个,例如我给p ...
1 通过servlet保证不乱码
① 首先设置response 字符缓冲区的编码 response.setCharacterEncoding("UTF-8");
② 然后设置浏览器打开文件的编码,也就是设置响应头 response.setHeader("Content-Type", "text/html;charset=U ...
public class Demo1 {
public static void main(String[] args) {
int[] array = {23,5,2,53,44};
selectSort(array);
}
//这个方法是冒泡排序
public static void sort(int []a){
int temp = 0;
for(int j=0;j<a.length;j++){
for(int k=0;k<a.length-j-1;k++){
if(a[k]>a[k+1]){
...
非原创博客,原创地址:http://www.iteye.com/topic/1116214
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。
总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快速搞定。
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。 ...
public class Demo3 {
private int[]array;
public void sort(){
int length = array.length;
if(length>0){
for(int i=1;i<length;i++){
int temp = array[i];
int j = i;
for(;j>0&&array[j-1]>temp;j--){
array[j] = array[j-1];
}
array[ ...
udp:
面向无连接。
不可靠。
速度快。
将数据封包传输,数据包最大64k。
举例:
聊天留言,在线视频,视频会议,发短信,邮局包裹。
tcp:
面向连接。
/*
* TCP协议发送数据:
* A:创建发送端的Socket对象
* 这一步如果成功,就说明连接已经建立成功了。
* B:获取输出流,写数据
* C:释放资源
*
* 连接被拒绝。TCP协议一定要先看服务器。
* java.net.ConnectException: Connection refused: connect
*/
public class ClientDemo {
public static void main(String[] args) throws IOException {
// 创建发送端的Socket对象
...
public class SendDemo {
public static void main(String[] args) throws IOException {
// 创建发送端Socket对象
DatagramSocket datagramSocket = new DatagramSocket();
// 创建数据,并把数据打包
byte[] bytes = "Hello udp".getBytes();
InetAddress inetAddress = InetAddress.getByName("19 ...
1:多线程有几种实现方案,分别是哪几种? 两种。 继承Thread类 实现Runnable接口 扩展一种:实现Callable接口。这个得和线程池结合。2:同步有几种方式,分别是什么? 两种。 同步代码块 同步方法(根据方法不同,锁也不同,静态用本类的.class充当锁,非静态用this)3:启动一个线程是run()还是start()?它们的区别? start(); run():封装了被线程执行的代码,直接调用仅仅是普通方法的调用 start():启动线程,并由JVM自动调用run()方法4:sleep( ...