09 2017 档案
摘要:1.冒泡排序 冒泡排序是一种极其简单的排序算法,也是我所学的第一个排序算法。它重复地走访过要排序的元素,依次比较相邻两个元素,如果他们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的运作如下:
阅读全文
摘要:SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。1. 数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>2 .数
阅读全文
摘要:介绍一下什么时候用到事务。 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。 隔离性(Isola
阅读全文
摘要:共享锁【S锁】又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。 排他锁【X锁】又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,
阅读全文
摘要:Read uncommitted(未授权读取、读未提交): 如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。该隔离级别可以通过“排他写锁”实现。 避免了更新丢失,却可能出现脏读。也就是说事务B读取到了事务A未提交的数据。 Read committed(授权
阅读全文
摘要:类别synchronizedLock 存在层次 Java的关键字,在jvm层面上 是一个类 锁的释放 1、以获取锁的线程执行完同步代码,释放锁 2、线程执行发生异常,jvm会让线程释放锁 在finally中必须释放锁,不然容易造成线程死锁 锁的获取 假设A线程获得锁,B线程等待。如果A线程阻塞,B线
阅读全文
摘要:注意事项: 1、死锁 2、系统资源不足 3、并发错误 4、线程泄漏 5、任务过载 线程池的作用: 在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不
阅读全文
摘要:Daemon的作用是为其他线程的运行提供服务,比如说GC线程。其实User Thread线程和Daemon Thread守护线程本质上来说去没啥区别的,唯一的区别之处就在虚拟机的离开:如果User Thread全部撤离,那么Daemon Thread也就没啥线程好服务的了,所以虚拟机也就退出了。 守
阅读全文
摘要:1、这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。 sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用了b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。 2、最主要是sleep方法没有释放锁,而w
阅读全文
摘要:String 字符串常量 不可变 使用字符串拼接时是不同的2个空间 StringBuffer 字符串变量 可变 线程安全 字符串拼接直接在字符串后追加 StringBuilder 字符串变量 可变 非线程安全 字符串拼接直接在字符串后追加 1.StringBuilder执行效率高于StringBuf
阅读全文
摘要:有两个容器,一个用于保存线程正在请求的锁,一个用于保存线程已经持有的锁。每次加锁之前都会做如下检测: 1)检测当前正在请求的锁是否已经被其它线程持有,如果有,则把那些线程找出来 2)遍历第一步中返回的线程,检查自己持有的锁是否正被其中任何一个线程请求,如果第二步返回真,表示出现了死锁
阅读全文
摘要:E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型) ? - 表示不确定的java类型 S、U、V - 2nd、3rd、4th types
阅读全文
摘要:1.spring的核心是ioc和aop,其中ioc是将控制权交由spring容器进行管理,aop是面向切面编程,内部实现使用的是动态代理,二动态代理内部实现用的是反射。spring的事务是通过aop来实现的,从cglib.jar包就可以看出,是和动态代理相关的。 2.spring的事务的使用:声明式
阅读全文
摘要:Jdk【Java Development ToolKit】就是java开发工具箱, JDK是整个JAVA的核心,里边包含了jre,它除了包含jre之外还包含了一些javac的工具类,把java源文件编译成class文件,java文件是用来运行这个程序的,除此之外,里边还包含了java源生的API,j
阅读全文
摘要:内存泄露 (memory leak),是指应用程序在申请内存后,无法释放已经申请的内存空间.一次内存泄露危害可以忽略,但如果任其发展最终会导致内存溢出(out of memory).如读取文件后流要进行及时的关闭以及对数据库连接的释放。 内存溢出(out of memory)是指应用程序在申请内存时
阅读全文
摘要:官方话 1.List和Set都是接口,他们都继承于接口Collection,List是一个有序的可重复的集合,而Set的无序的不可重复的集合。Collection是集合的顶层接口,Collections是一个封装了众多关于集合操作的静态方法的工具类,因为构造方法是私有的,所以不能实例化。 2.Lis
阅读全文
摘要:数据类型 大小 byte(字节) 1(8位) shot(短整型) 2(16位) int(整型) 4(32位) long(长整型) 8(64位) float(浮点型) 4(32位) double(双精度) 8(64位) char(字符型) 2(16位) boolean(布尔型) 1位 附加: Stri
阅读全文
摘要:1、从数据共享上 Forword是一个请求的延续,可以共享request的数据 Redirect开启一个新的请求,不可以共享request的数据 2、从地址栏 Forword转发地址栏不发生变化 Redirect转发地址栏发生变化
阅读全文
摘要:HashMap不是线程安全的,HashTable是线程安全。 HashMap允许空(null)的键和值(key),HashTable则不允许。 HashMap性能优于Hashtable。
阅读全文
摘要:HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。 当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。 当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返
阅读全文
摘要:public class Sort { public static void sort() { Scanner input = new Scanner(System.in); int sort[] = new int[10]; int temp; System.out.println("请输入10个排序的数据:"); ...
阅读全文
摘要:while(low array[middle]) { low = middle + 1; } if(value < array[middle]) { high = middle - 1; } } ...
阅读全文
摘要:减少对数据库的查询次数 尽量使用相同的或非常类似的SQL语句进行查询 避免不带任何条件的SQL语句的执行 sql语句用大写 别名的使用(1.5倍)
阅读全文
摘要:JVM的垃圾回收机制;(GC通过确定对象是否被活动对象引用来确定是否收集该对象。) 1、触发GC(Garbage Collector)的条件。 (1、GC在优先级最低的线程中运行,在未运行的线程中进行调用 2、若Java内存不足时,会强制调用GC,若一次不能满足,则二次调用GC,若仍然不满足,则报异
阅读全文
摘要:乐观锁:在取数据时不加锁,等处理完逻辑的时候,查看是否与上一次相同,若相同则更新,若不同则拒绝。 悲观锁:在取数据时就加上锁,只有更新完数据之后,别的用户才可以进行读。 (个人总结)
阅读全文
摘要:== 比较的是值 比较基本的数据类型,比较的是数值 比较引用类型,比较的是引用指向的值(地址) equals 默认比较也是地址,因为这个方法的最初定义在Object上,默认的实现就是比较地址 自定义的类,如果需要比较的是内容,那么就要学String,重写equals方法
阅读全文
摘要:hibernate 和mybatis 你觉得选哪个?原因? Mybatis优势 MyBatis可以进行更为细致的SQL优化,可以减少查询字段。 MyBatis容易掌握,而Hibernate门槛较高。 Hibernate优势 Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护
阅读全文
摘要:IoC(Inversion of Control) (1). IoC(Inversion of Control)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。 对于Spring而言,就是由Spring来控制对象的生命周
阅读全文
摘要:类加载过程一共五个步骤:加载-》连接-》初始化-》使用-》卸载 连接包含(验证-》准备-》解析) 如下图:
阅读全文
摘要:代理模式:所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式类图如下:(非本人所画) 抽象对象角色:声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可
阅读全文
摘要:常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent) cd 切换目录 touch 创建空文件 echo 创建带有内容的文件。 cat 查看文件内容
阅读全文
摘要:懒汉式单例类 /** * 懒汉式单例类 * 懒汉式是典型的时间换空间 * @author MJ * */ public class LazySingleton { private static LazySingleton instance = null; // 私有构造方法 private Lazy
阅读全文