暂无个人介绍
前段时间接了一个H5游戏的后端开发任务,需求比较简单,就是在大会场里,几百、上千人分成若干组,在一段时间里同时摇手机,实时显示当前排名,最后看哪个组摇的最快,哪个人摇的最快。
正确理解Spring bean的生命周期非常重要,因为有的时候可能会利用Spring提供的扩展点来自定义bean的创建过程,同时Spring bean的生命周期也是面试时经常被提起的问题,所以写篇文章总结一下。
ArrayList是Java中比较常用的一个类,它是基于数组实现,非线程安全,可快速随机访问List中的元素。 ArrayList具有动态扩容的机制,每次在添加元素时,都会判断容量是否够用,如果不够用,则需要扩容。
本文项目代码: 服务端:https://github.com/lining90567/dubbo-demo-server 前端:https://github.com/lining90567/dubbo-demo-client 最近项目中使用了shiro做权限管理,在开发过程中也踩了一些坑,于是便有了开发个应用巩固一下所学知识的想法,正好在开发的过程里学习一下Vue开发。
Java虚拟机规范规定了有且只有5种情况必须立即对类进行初始化: 1. 使用new关键字实例化对象的时候、读取或设置一个类的静态字段(被final修饰、已在编译器吧结果放入常量池的静态字段除外)的时候,以及调用一个类的静态方法的时候。
java中的java.lang.ThreadLocal,为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal并不是一个Thread,而是Thread的局部变量。
公司一个产品在上线到云以后,运行一段时间就会提示获取数据库连接失败,用 select * from pg_stat_activity; 查看所有连接,发现有很多连接最后一次执行的SQL语句是 SELECT t.typname,t.oid FROM pg_catalog.pg_type t JOIN pg_catalog.pg_namespace n ON (t.typspace = n.oid) WHERE n.nspname != 'pg_toast',经确认在程序中没有任何一处执行了该SQL。
wait、notify和notify是Object类的3个final方法,这三个方法可以实现线程间的通信。在线程中调用Object的wait方法,将阻塞当前线程等待其它线程的通知,通知使用notify或notifyAll方法。
java的Thread.yield,是暂停正在执行的线程,然后执行其他线程(包括被暂停的线程),但是无法保证执行yield方法的线程真正达到“让步”的目的,因为“让步”的线程也有可能被线程调度程序选中继续执行。
java的Thread.Join,是把指定的线程加入到当前线程,也就是如果调用了某个线程的join方法,则后续线程必须等待该线程执行完成后才能执行。
初学python,在同一目录中创建了两个py文件:a.py和b.py,然后在a.py中import b.py from . import b ...... 在linux下执行没有问题,但是在windows下就提示 ImportError: cannot import name 'b' 在网上搜了半天也没有找到问题所在,后来还是在google上找到了答案。
网上类似文章很多,不多说,直接上代码: /** * 流控类(Semaphore实现) * * @author ln * */ public class FlowControl { /** * 最大访...
转自:http://www.cnblogs.com/lzq198754/p/5857597.html 二叉树是一种非常重要的数据结构,它同时具有数组和链表各自的特点:它可以像数组一样快速查找,也可以像链表一样快速添加。
转自:http://blog.csdn.net/wudiyong22/article/details/52141608 前言 ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。
转自:https://my.oschina.net/ydsakyclguozi/blog/404389 1、强引用(StrongReference) 强引用是使用最普遍的引用。
转自:http://www.cnblogs.com/nullzx/p/5880191.html 1. 单轴快速排序的基本原理 快速排序的基本思想就是从一个数组中任意挑选一个元素(通常来说会选择最左边的元素)作为中轴元素,将剩下的元素以中轴元素作为比较的标准,将小于等于中轴元素的放到中轴元素的左边,将大于中轴元素的放到中轴元素的右边,然后以当前中轴元素的位置为界,将左半部分子数组和右半部分子数组看成两个新的数组,重复上述操作,直到子数组的元素个数小于等于1(因为一个元素的数组必定是有序的)。
堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法。
快速排序的原理: 选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。
冒泡排序算法的实现原理: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
前段时间一直在做公司的微服务项目,技术栈主要是Spring Boot+Thrift,感觉使用Spring Boot确实太方便了: 1. 无xml配置。