- 博客(16)
- 资源 (6)
- 收藏
- 关注
原创 DQL-function
排序查询DESC降序:descent(descending order)ASC升序:ascent(ascending order)(默认)order by 语句一般放在查询语句最后,除limit语句常见函数SQL函数一定有返回值数学函数一元运算第二位参数代表保留小数点后位数日期函数其它函数流程控制函数注意end, 整个语句中没有分割符号...
2021-02-23 15:18:37 88
原创 DQL(Data Query Language)
基本查询语句查询常量起别名去重 distinct关键字字段合并拓展CONCAT_WS(separator(分离器),str1,str2,…)IFNULL(expr1,expr2)(如果expr1为null,则设置为expr2值)注意点:单、双引号作用相同SQL不区分大小写,即使是引号中的字符!引号有转义作用,可以将名字为关键字的字段名转换为正常字段名条件查询建议使用<>、and、or、not MySQL自己的模糊查询...
2021-02-22 11:23:32 129 1
原创 JUC-ForkJoinPool
分治思想每个小任务最终都是多线程并发执行的(一个线程一个小任务),所以这个大任务执行过程不能有顺序要求,即:大任务可由小任务执行完后合并而成。应用java.util.concurrent下的Future< V >就是多线程下的单个线程处理的任务,所以MyForkJoin就是个任务。注意点: (Recursive递归的)RecursiveTask< V >有返回值RecursiveAction没有返回值使用ForkJoin框架就得实现其中一种任务package f
2021-02-17 16:40:29 109
原创 JDK8-新特性
接口可有默认方法和静态方法????安全时间日期 java.time系列以前时间日期多线程是不安全的,像SimpleDateFormat()就得用ThreadLocal<>使用ISO标准日期就用java.time系列java.time.format:(DateTimeFormatter多线程下安全)...
2021-02-17 11:59:09 80 1
原创 JDK8-java.util.stream
Stream作用就是在不改变源集合、数组条件下,对其中元素进行一顿操作得到想要的数据。Stream创建方式Stream中间操作惰性求值:只有存在Stream终止操作时,才会执行中间操作筛选与切片注:下图中employees是个ListStream filter(Predicate<? super T> predicate)以某种条件过滤掉部分元素:Stream limit(long maxSize)取前maxSize个元素:Stream skip(long n)
2021-02-16 20:11:26 344 1
原创 JDK8-Lambda表达式应用
四大内置核心函数式接口java.util.function使用方式:Lambda方法引用注意点:1. 调用的方法的 参数列表、返回值必须与函数式接口中方法的参数列表、返回值相同。2. 调用的方法名后不用写括号ArrayList<Object> list = new ArrayList<>();list.forEach(System.out::println);// public void forEach(Consumer<? super E> a
2021-02-15 19:23:48 84
原创 六大设计原则
单一职责原则理解:不同的类具备不同的职责,各司其职。做系统设计是,如果发现有一个类拥有了两种职责,那么就要问一个问题:可以将这个类分成两个类吗?如果真的有必要,那就分开,千万不要让一个类干的事情太多。总结:一个类只承担一个职责开放封闭原则理解:即开放扩展封闭修改。如果要修改代码,尽量用继承或组合的方式来扩展类的功能,而不是直接修改类的代码。当然,如果能保证对整个架构不会产生任何影响,那就没必要搞的那么复杂,直接改这个类吧。总结:对软件实体的改动,最好用扩展而非修改。里式替换原则理解:父类可被子
2021-02-14 19:07:56 99 1
原创 JCU-线程池
thread.getId()是当前执行线程的ID,每个线程有自己的ID,当一个线程执行完被销毁后,它拥有的ID会被重新分配给其他线程。内存线程池中维护一定数量的线程,进行重复利用。(减少创建、启动、销毁线程的开销)线程从任务队列中取任务执行Java中的线程池工具类Executors:工具类Executors中方法创建固定线程数的线程池创建有调度功能的线程池有执行时间、频率的调度(类似定时器Timer)scheduleAtFixedRate(Runnable command,
2021-02-09 21:41:57 302 1
原创 JUC-java.util.concurrent.locks
Lock lock = new ReentrantLock(); 无论需要同步的代码是不是在一个方法中,只要使用同一个锁对象就能实现同步(和synchronized原理一样)//使用方法 try{ lock.lock(); 同步代码... } finally{ lock.unlock(); }注意,多次重入需要多次释放:thread.interrupt()thread.interrupt();方法对lock.lock()没有用,线程不会中断也不会释放锁,会继续运行。对loc.
2021-02-09 12:36:45 109
原创 JUC-ThreadLocal
概念(就是将一个变量与线程绑定)只记1:ThreadLocal都是由private static修饰的ThreadLocal与synchronized区别ThreadLocal相对可以拥有更高的并发性synchronized只提供一个变量(一个工具 => 一支笔 只提供一支笔就会产生哄抢,所以要使用synchronized进行排序)(想起多线程使用同一个SimpleDateFormat就会报错)。而ThreadLocal为每个线程提供一个变量副本(多个工具 => 每人一支笔各用各
2021-02-08 20:08:04 158
原创 JUC-内存模型
类锁在实例方法中使用:synchronized (this.getClass()){}要注意脏读:对共享数据的改和读都要进行同步, 不然可能出现读取到改动中间值的错误情况。线程出现异常会自动释放锁!!!死锁解决办法:让两个线程方法中的嵌套锁的锁对象顺序一样 /** * 死锁的实质: */ 一个线程: sychronized(a){ sychronized(b){ } } 另一个线程: sychronized(b){ sychronized(a){ }...
2021-02-05 21:56:46 152
原创 JUC-线程安全问题
由于不可见会导致的问题是:一个线程从主内存中读取数据后,对数据修改后并不立即刷新到主内存上(而是自己继续用)导致其他线程一直读取的是主内存中的旧数据。
2021-02-05 17:22:29 152
原创 JUC-线程基础概念
java中线程Thread中方法判断一个线程是否存活:thread引用.isAlive();阻塞当前线程: Thread.sleep(lang millis);线程六大状态由Thread.State枚举类定义!由thread.getState()方法获得当前线程状态。
2021-02-05 14:13:47 147
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人