标签java下的文章

呛水滴鱼 发布于 06月28, 2018
阅读(210) 评论(0)

使用Netty进行Socket编程

使用Netty进行Socket编程Netty是业界最流行的Java-nio框架之一,它的健壮性,功能,性能,扩展性等在同类框架中都是首屈一指的存在。Java的nio和aio对于开发者来说显得并不友好。如果没有任何java-nio基础的读者,建议先看看我的上一篇介绍Java-I/O模型的文章。建议初学者跟着代码写一遍,写一遍加深印象能更好的理解java-nio的实现步骤和原理。HelloWorld ...

阅读全文 »

呛水滴鱼 发布于 06月26, 2018
阅读(162) 评论(0)

Java的I/O模型

Java的I/O模型java在JDK中提供了三种I/O模型,一类是最原始也是我们用得最多最熟悉的阻塞I/O模型BIO,使用InputStream和OutputStream进行读写操作。第二种是jdk1.4之后的NIO,相比起BIO在性能上无疑是一个巨大的提升,NIO的应用场所主要是在网络上,因为相比起CPU,内存,硬盘的处理速度,网络差了太多太多,所以在开发网络应用时,使用BIO模型,处理器大多数...

阅读全文 »

呛水滴鱼 发布于 05月29, 2018
阅读(236) 评论(0)

Java 中的AOP代理

Java 中的AOP代理aop 面向切面编程在传统 OOP 编程里以对象为核心,整个软件系统由系列相互依赖的对象所组成,而这些对象将被抽象成一个一个的类,并允许使用类继承来管理类与类之间一般到特殊的关系。随着软件规模的增大,应用的逐渐升级,慢慢出现了一些 OOP 很难解决的问题。比如我们在写CUDR业务时,同一操作也许会设计到对多个记录或者表的变更操作,此时我们需要对其经行事务控制,这样才能保证一...

阅读全文 »

呛水滴鱼 发布于 05月23, 2018
阅读(266) 评论(0)

自定义模版字符串解析

自定义模版字符串解析有时候需要拼接一些字符串,在Java有字符串模版,但是这个模版的可读性很差,js在ES6中新增了字符模版,但是在面对模版字符串的时候依旧无法处理。所以写了个工具在两端可以解析同一套模版。String name = "张三";int age = 18;String temp = "%s您好!你的年龄%s"//Java字符串模版// 改成模版字符串时可读性比较好var temp =...

阅读全文 »

呛水滴鱼 发布于 05月22, 2018
阅读(304) 评论(0)

记一个PostConstruct和Spring的坑

记一个PostConstruct和Spring的坑场景在一些业务中抽象了一个业务类型,所有子类在启动程序时注册到一个context中,然后通过每种业务的code在context来获取具体的子类实现。抽象业务父类/** * @author wpy * @date 2018/4/18 15:42 */public abstract class AbstractBusiness { @PostCo...

阅读全文 »

呛水滴鱼 发布于 11月08, 2017
阅读(50) 评论(0)

SpringMVC读书笔记

DispatcherServletDispatcherServlet 的初始化过程中,Spring MVC会在你web应用的 WEB-INF 目录下查找一个名为[servlet-name]-servlet.xml的配置文件,并创建其中所定义的bean。如果在全局上下文中存在相同名字的bean,则它们将被新定义的同名bean覆盖。WebApplicationContext被绑定在ServletC...

阅读全文 »

呛水滴鱼 发布于 11月08, 2017
阅读(73) 评论(0)

SpringBoot配置文件常用配置示例

SpringBoot配置文件flyway.baseline-description执行基线时标记已有Schema的描述。flyway.baseline-on-migrate在没有元数据表的情况下,针对非空Schema执行迁移时是否自动调用基线。(默认值:false 。)flyway.baseline-version执行基线时用来标记已有Schema的版本。(默认值: 1 。)flyway.chec...

阅读全文 »

呛水滴鱼 发布于 11月08, 2017
阅读(62) 评论(0)

SpringBoot下配置FreeMarker配置远程模版

需求产生原因要求在同一个接口中,根据不同的参数,返回不同的视图结果所有的视图中的数据基本一致要求页面能静态化,优化SEO例如:A接口返回客户的信息客户A在调用接口时,返回其个性化定制的页面A客户B在调用这个接口时,返回其个性化主页B实现方式 freemaker 的 TemplateLoaderfreemaker的配置类freemarker.template.Configuration中提供了一个配...

阅读全文 »

呛水滴鱼 发布于 05月20, 2017
阅读(48) 评论(0)

Java多线程Master-Worker模式

Java多线程Master-Worker模式,多适用于需要大量重复工作的场景中。例如:使用Master-Worker计算0到100所有数字的立方的和Master接收到100个任务,每个任务需要0到100中每个数字的立方,这里为了效果,每个任务再sleep一秒,Master需要将这些任务放到一个支持高并发的非阻塞队列queue中如:ConcurrentLinkedQueue。Master创建10个w...

阅读全文 »

呛水滴鱼 发布于 05月19, 2017
阅读(62) 评论(0)

Java多线程其他

1.interrupt()方法  interrupt方法不会真正中断线程,它只会清楚线程的wait,sleep,join的受阻状态,时线程重新获得CPU的执行权。  此时如果再次调用线程的wait,sleep,join方法,将会抛出一个InterruptedException异常package threadinterrupt;public class InterruptDemo { publ...

阅读全文 »

呛水滴鱼 发布于 05月19, 2017
阅读(55) 评论(0)

Java多线程Lock

JDK5以后为代码的同步提供了更加灵活的Lock+Condition模式,并且一个Lock可以绑定多个Condition对象1.把原来的使用synchronized修饰或者封装的代码块用lock.lock()与lock.unlock()进行手动的锁获取与释放//原来的同步方式synchronized (obj) { ...}//JDK5.0新增的同步方式//lock.unlock();建议最...

阅读全文 »

呛水滴鱼 发布于 05月18, 2017
阅读(53) 评论(0)

Java多线程synchronized关键字

synchronized关键字代表着同步的意思,在Java中被synchronized修饰的有三种情况1.同步代码块//锁为objsynchronized(obj){ while(true){ if(product > 0){ System.out.println(Thread.currentThread().getName()+"消费:"+prod...

阅读全文 »

呛水滴鱼 发布于 05月15, 2017
阅读(55) 评论(0)

Java多线程Future模式

Java多线程Future模式有些类似于Ajax的异步请求Future模式的核心在于:去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑假设服务器的处理某个业务,该业务可以分成AB两个过程,并且AB两个过程之间不需要彼此的返回结果A过程需要1秒钟,B过程需要2秒钟,主线程其他操作2秒钟按照正常编写,程序大概需要执行5秒如果按照Future模式只需要执行2秒(取其中运行时间最...

阅读全文 »