• 浅谈 Spring 框架注解的用法分析

    写在前面: 众所周知,在JavaEE开发框架中,Spring框架是用的最多的,注解在框架的定位也就越来越明显了。说句玩笑话:能用一个注解解决的,绝不用一堆配置和代码解决;如果不能解决,那么来两个注解;(稳住,别喷…) 1.@Component是Spring定义的一个通用注解,可以注解任何
    Johnny 发表于1年前 阅读(36864) 评论(0)
  • 多种负载均衡算法及其 Java 代码实现

    首先给大家介绍下什么是负载均衡(来自百科) 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展?网络设备和?服务器的带宽、增加?吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作
    vaibhav 发表于1年前 阅读(37557) 评论(1)
  • Java 中的 Filter 过滤器详解

    Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应
    Chris 发表于1年前 阅读(2839) 评论(0)
  • Java 8 API 设计经验浅析

    任何写Java代码的人都是API设计师!无论编码者是否与他人共享代码,代码仍然被使用:要么其他人或他们自己使用,要么两者皆有。因此,对于所有的Java开发人员来说,了解良好API设计的基础很重要。 一个好的API设计需要仔细思考和大量的经验。幸运的是,我们可以从其他更聪明的
    Elnur-Abdurrakhimov 发表于1年前 阅读(1312) 评论(0)
  • 关于Java并发编程的总结和思考

    编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。本文是对并发编程的一点总结和思考,同时也分享了Java
    MetroidFan2002 发表于1年前 阅读(1083) 评论(0)
  • Spring 5 新特性:函数式Web框架

    正如昨天Juergen博客中所提到的,Spring?5.0的第二个里程碑是引入了一个新的函数式web框架。在这篇文章中,我们将给出关于这个框架的更多信息。 举例 我们先从示例应用程序的一些摘录开始。下面是暴露Person对象的响应信息库。很类似于传统的,非响应信息库,只不过它返回Flux
    BalusC 发表于1年前 阅读(2826) 评论(0)
  • Java 8 Streams 中的数据库 CRUD 操作

    接触一个新工具的时候,刚开始要克服的最大障碍就是如何让你自己先尝试做出一个小东西来。现在你也许对 Java 8 中新的?Stream API 的运作方式在理解上比较自信,但你也许并没用它来进行过数据库查询操作。为了帮助你开始使用 Stream API 来对 SQL 数据库进行创建、修改和读取
    Fabien-Menager 发表于1年前 阅读(2248) 评论(0)
  • 深入解析 Java OutOfMemoryError

    在Java中,所有对象都存储在堆中。他们通过new关键字来进行分配,JVM会检查是否所有线程都无法在访问他们了,并且会将他们进行回收。在大多数时候程序员都不会有一丝一毫的察觉,这些工作都被静悄悄的执行。但是,有时候在发布前的最后一天,程序挂了。 Exception in thread &
    Ahamed 发表于1年前 阅读(1278) 评论(0)
  • 高并发Java(9):锁的优化和注意事项

    1. 锁优化的思路和方法 在高并发Java(1):前言中有提到并发的级别。 一旦用到锁,就说明这是阻塞式的,所以在并发度上一般来说都会比无锁的情况低一点。 这里提到的锁优化,是指在阻塞式的情况下,如何让性能不要变得太差。但是再怎么优化,一般来说性能都会比无锁的情况差
    mortensen 发表于1年前 阅读(1403) 评论(0)
  • 从使用到原理学习Java线程池

    线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。 所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数
    Tuffin 发表于1年前 阅读(1519) 评论(0)
  • 高并发Java(8):NIO和AIO

    IO感觉上和多线程并没有多大关系,但是NIO改变了线程在应用层面使用的方式,也解决了一些实际的困难。而AIO是异步IO和前面的系列也有点关系。在此,为了学习和记录,也写一篇文章来介绍NIO和AIO。 1. 什么是NIO NIO是New I/O的简称,与旧式的基于流的I/O方法相对,从名字看,
    mortensen 发表于1年前 阅读(1381) 评论(0)
  • 高并发Java(7):并发设计模式

    1. 什么是设计模式 在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题 ,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领 域引入到计算机科学的。 著名的4人帮:?Erich Gamma,Richard Helm, Ral
    mortensen 发表于1年前 阅读(1590) 评论(0)
  • 高并发Java(6):JDK并发包2

    1. 线程池的基本使用 1.1.为什么需要线程池 平时的业务中,如果要使用多线程,那么我们会在业务开始前创建线程,业务结束后,销毁线程。但是对于业务来说,线程的创建和销毁是与业务本身无关的,只关心线程所执行的任务。因此希望把尽可能多的cpu用在执行任务上面,而不是用在
    mortensen 发表于1年前 阅读(1503) 评论(0)
  • 高并发Java(5):JDK并发包1

    在高并发Java(2):多线程基础中,我们已经初步提到了基本的线程同步操作。这次要提到的是在并发包中的同步控制工具。 1. 各种同步控制工具的使用 1.1 ReentrantLock ReentrantLock感觉上是synchronized的增强版,synchronized的特点是使用简单,一切交给JVM去处理,但是功能
    mortensen 发表于1年前 阅读(1161) 评论(0)
  • 高并发Java(4):无锁

    在高并发Java(1):前言中已经提到了无锁的概念,由于在jdk源码中有大量的无锁应用,所以在这里介绍下无锁。 1 无锁类的原理详解 1.1 CAS CAS算法的过程是这样:它包含3个参数CAS(V,E,N)。V表示要更新的变量,E表示预期值,N表示新值。仅当V 值等于E值时,才会将V的值设为N,
    mortensen 发表于1年前 阅读(1249) 评论(0)
  • 用java做一个最小的操作系统内核2

    (系列视频实战可观看网易云课堂: Linux kernel Hacker, 从零构建自己的内核 ) 上一节,我用java制作了一个虚拟软盘,当把软盘插入虚拟机,启动机器后,屏幕打印出java程序中设定的语句,然后卡死。 在java代码中,有一个二进制数组,imgContent, 它里面存储的实际上是一段二
    Utkash-Bhatt 发表于1年前 阅读(969) 评论(0)
  • 用java做一个最小的操作系统内核

    (系列视频实战可观看网易云课堂: Linux kernel Hacker, 从零构建自己的内核 ) 用java来做操作系统内核,太搞笑了吧。如果你这么想,同时嘴上发出呵呵一笑。那么我这篇文章的目的也算达到了,评判一篇文章好坏,不就在于它是否能让读者感觉到精神的愉悦吗。如果你笑了,那表
    Utkash-Bhatt 发表于1年前 阅读(1421) 评论(0)
  • 那些经常被遗忘的 Java 面试题

    静态类和静态方法 如果一个类要被声明为static的,只有一种情况,就是静态内部类。 静态内部类实际上与普通类(即类名必须与文件名一样的顶级类)一样,只是静态内部类在某一类的内部定义了而已,既然是类,要想使用就必须实例化。概念上与静态变量、静态方法是不一样的,不要
    Peter-Mortensen 发表于1年前 阅读(1098) 评论(0)
  • Java 程序死锁问题原理及解决方案

    Java 语言通过 synchronized 关键字来保证原子性,这是因为每一个 Object 都有一个隐含的锁,这个也称作监视器对象。在进入 synchronized 之前自动获取此内部锁,而一旦离开此方式,无论是完成或者中断都会自动释放锁。显然这是一个独占锁,每个锁请求之间是互斥的。相对于众
    paxos1977 发表于1年前 阅读(1365) 评论(0)
  • Java并发控制机制详解

    在一般性开发中,笔者经常看到很多同学在对待java并发开发模型中只会使用一些基础的方法。比如Volatile,synchronized。像Lock和atomic这类高级并发包很多人并不经常使用。我想大部分原因都是来之于对原理的不属性导致的。在繁忙的开发工作中,又有谁会很准确的把握和使用正确
    anthony 发表于1年前 阅读(689) 评论(0)