摘要:EL表达式:${pageContext.request.contextPath}或者直接传统的jsp:<%=request.getContextPath()%> 获取的结果都是项目名 想要获取项目的绝对路径和端口号:
阅读全文
摘要:参考:https://blog.csdn.net/wolfking0608/article/details/69066773
阅读全文
摘要:Spring中的bean默认都是单例的 一共有5种作用域:singleton、prototype、request、session和global session 设置方式只需要在形如:<bean id="XXX" class="com.mori.XXX" scope="singleton" /> 1、
阅读全文
摘要:public class Main { public static void main(String[] args){ ExecutorService pool = Executors.newFixedThreadPool(100); TestThread t = new TestThread(); for(int i = 0;i<100;...
阅读全文
摘要:switch表达式后面的支持数据类型(一共6种): 1.5之前——只能是byte,short,char,int四种数据类型 1.5——加入了枚举类型和上述四种数据类型的包装类型(其实是自动拆箱,分别调用byteValue()、shortValue()、charValue()、intValue())
阅读全文
摘要:Mysql里有很多东西都不适用在互联网的场景下,包括物理外键(这也是CAP理论三选二的原因)。 并发量大的情况下,最好让数据库只做自己擅长的事——存储,但是外键等于把数据的一致性事务实现,全部交给数据库服务器完成。 外键也大大地限制了拓展性,比如扩容或者字段的变化。 对于有联系的两个表,可以用事务来
阅读全文
摘要:首先外键只有在InnoDB中才有的,级联设置到子表中,一共有4种级联方式,指定在删除、更新父表时,对子表进行的相应操作: 1、RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新; 2、CASCADE表示父表在更新或者删除时,更新或者删除子表对应记录; 3、SET NU
阅读全文
摘要:都知道List、Set、Map继承Collection接口。一般情况下,使用Collection接口的 .stream()方法得到stream,即把一个Collection对象装换成Stream对象。 接着要知道的是Stream的中间方法以及最终方法,中间方法得到的结果还是一个Stream(转换St
阅读全文
摘要:1、Stream 2、函数式编程——Lambda表达式
阅读全文
摘要:websocket 在于建立全双工的通信方式 先从客户端说起: var socket = new WebSocket(url); 建立一个WebSocket连接 在创建WebSocket之后。可以通过onopen,onmessage,onclose及onerror四个事件实现对socket进行响应
阅读全文
摘要:记录一下笔试懵逼细节 查看表:desc [table]
阅读全文
摘要:——jvm为什么年轻代一定要划分成两个区域,为什么老年代不分,为什么一定要分代。 1、为什么要分代: 分代的唯一理由就是优化GC性能。如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的
阅读全文
摘要:1、Lock只是一个接口,基本开一个Lock就是开一个可重入锁: Lock lock = new ReentrantLock(); 2、wait(),wait(long timeout),notify(),notifyAll(),这些方法配合synchronized关键字一起使用可以实现等待/通知模
阅读全文
摘要:之前笔记有记录java线程池的拒绝策略,回顾一下线程池的处理任务的优先级: 先考虑corePoolSize、任务队列(缓冲队列)workQueue、最大线程maximumPoolSize,如果三者都满了,使用handler处理被拒绝的任务。 即: 如果运行的线程少于corePoolSize,则 Ex
阅读全文
摘要:父类的静态块或静态变量(这两种的等级相同,根据代码的先后顺序而定,其他同理)→子类的静态块或静态变量→父类的非静态块或非静态变量→父类的构造函数→子类的非静态块或非静态变量→子类的构造函数 使用父类类型的引用指向子类的对象,即向上转型Parent parent = new Son();该引用只能调用
阅读全文
摘要:1、同步方法块 被括起来的块分别有指令:monitorenter 和 monitorexit monitorenter: 从之前的笔记知道,每个对象都有一个监视器锁(monitor),当monitor被占用时就会处于锁定状态。线程就是执行monitorenter命令获取monitor锁的。 1、如果
阅读全文
摘要:先谈sleep与wait:sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运 行状态。另外,在调用sleep()方法的过程中,线程不会释放对象锁。 而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定
阅读全文
摘要:1、执行hash(Object key)得到hash值,再判断table是否为空,为空表明这是第一个元素插入,则先resize,初次大小默认16。 2、若不需要初始化,则判断要插入结点的位置是否为空,也就是没有产生Hash地址冲突,是则直接放入table。 3、否则产生了冲突,那么有两种情况:key
阅读全文
摘要:当参数使用 #{xxx} 时,参数不参与到编译过程,编译后用 ? 代替响应的位置,可以预防sql注入。另外,在多次执行同一个sql语句时,也能提高执行速度。 但是使用 ${xxx} 时,参数会参与到编译过程,会引起sql注入,要手工做好过滤工作。 #{xxx} 原理:JDBC PreparedSta
阅读全文
摘要:JVM书400页中介绍到在HotSpot虚拟机,每个对象的对象头信息中的“Mark Word”含有锁标志位。当对象被synchronized修饰时标志位为10即重量级锁。 在具体的过程中,每个对象都对应一个ObjectMonitor,获得锁即获得ObjectMonitor对象。(一切皆对象) Obj
阅读全文
摘要:发布订阅模式是最常用的一种观察者模式的实现,并且从解耦和重用角度来看,更优于典型的观察者模式。 在观察者模式中,观察者需要直接订阅目标事件;在目标发出内容改变的事件后,直接接收事件并作出响应。在发布订阅模式中,发布者和订阅者之间多了一个发布通道;一方面从发布者接收事件,另一方面向订阅者发布事件;订阅
阅读全文
摘要:1、先来先服务(FCFS):非抢占 2、轮转(RR):时间片用完后抢占 3、最短进程优先(SPN):非抢占,下一次选择预计处理时间最短的进程 4、最短剩余时间(SRT):SPN的抢占版,新进程到达时抢占 5、最高响应比优先:非抢占……算了这个懒得看了 6、(多级)反馈:时间片用完后抢占。方案345都
阅读全文