Java
文章平均质量分 56
GarfieldEr007
这个作者很懒,什么都没留下…
展开
-
java并发之SynchronousQueue实现原理
前言SynchronousQueue是一个比较特别的队列,由于在线程池方面有所应用,为了更好的理解线程池的实现原理,笔者花了些时间学习了一下该队列源码(JDK1.8),此队列源码中充斥着大量的CAS语句,理解起来是有些难度的,为了方便日后回顾,本篇文章会以简洁的图形化方式展示该队列底层的实现原理。SynchronousQueue简单使用经典的生产者-消费者模式,操作流程是这样的:有多个生产者,可以并发生产产品,把产品置入队列中,如果队列满了,生产者就会阻塞;有多个消费者,并发从队列中获取产品转载 2021-12-19 15:25:30 · 345 阅读 · 0 评论 -
如何优雅的使用和理解线程池
前言平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的《阿里巴巴 Java 手册》里也有一条:可见线程池的重要性。简单来说使用线程池有以下几个目的:线程是稀缺资源,不能频繁的创建。 解耦作用;线程的创建于执行完全分开,方便维护。 应当将其放入一个池子中,可以给其他任务进行复用。线程池原理谈到线程池就会想到池化技术,其中最核心的思想就是把宝贵的资源放到一个池子中;每次使用都从里面获取,用完之后又放回池子供其他人使用,有点吃大锅饭的意思。那在 Java 中又是如何转载 2020-09-23 23:13:47 · 1298 阅读 · 1 评论 -
JSR 303 – Bean Validation 介绍及最佳实践
关于 Bean Validation在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题,比如说语义的一致性等。为了避免这样的情况发生,最好是将验证逻辑与相应的域模型进行绑定。Bean Validation 为 JavaBean 验证定义了相应的元数据模型和 A转载 2020-08-31 23:44:55 · 879 阅读 · 0 评论 -
JSR 303 - Bean Validation 介绍及最佳实践
关于 Bean Validation在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题,比如说语义的一致性等。为了避免这样的情况发生,最好是将验证逻辑与相应的域模型进行绑定。Bean Validation 为 JavaBean 验证定义了相应的元数据模型和 A转载 2020-06-11 23:04:40 · 842 阅读 · 0 评论 -
Java I/O系统学习系列三:I/O流的典型使用方式
尽管可以通过不同的方式组合IO流类,但我们可能也就只用到其中的几种组合。下面的例子可以作为典型的IO用法的基本参考。在这些示例中,异常处理都被简化为将异常传递给控制台,但是这只有在小型示例和工具中才适用。在代码中,你需要考虑更加复杂的错误处理方式。 同样,本文会包括如下几个方面: 缓冲输入文件 从内存输入 格式化的内存输入 基本的文件输出 存储和恢复数据 ...转载 2019-12-13 22:47:30 · 650 阅读 · 0 评论 -
Java I/O系统学习系列二:输入和输出
编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象。“流”屏蔽了实际的I/O设备中处理数据的细节。 在这个系列的第一篇文章:<<Java I/O系统学习系列一:File和RandomAccessFile>>中,我们讲到RandomAccessFile可以写入和读取文件,具备I/O功能,但是其只能针对文件,而...转载 2019-12-13 22:46:49 · 602 阅读 · 0 评论 -
Java I/O系统学习系列一:File和RandomAccessFile
I/O系统即输入/输出系统,对于一门程序语言来说,创建一个好的输入/输出系统并非易事。因为不仅存在各种I/O源端和想要与之通信的接收端(文件、控制台、网络链接等),而且还需要支持多种不同方式的通信(顺序、随机存取、缓冲、二进制、按字符、按行、按字等)。 Java类库的设计者通过创建大量的类来解决这个难题,比如面向字节的类(字节流,InputStream、OutputStream)、面向字符和...转载 2019-12-13 22:46:03 · 663 阅读 · 0 评论 -
JDK源码阅读顺序
很多java开发的小伙伴都会阅读jdk源码,然而确不知道应该从哪读起。以下为小编整理的通常所需阅读的源码范围。标题为包名,后面序号为优先级1-4,优先级递减1、java.lang1) Object 12) String 13) AbstractStringBuilder 14) StringBuffer 15) StringBuilder 16) Boolean 27) Byt...转载 2019-12-08 12:15:35 · 648 阅读 · 0 评论 -
Java关键字(一)——instanceof
instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: 1 booleanresult = objinstanceofClass 其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返...转载 2019-12-05 21:35:16 · 599 阅读 · 0 评论 -
Java数据结构和算法(四)——栈
前面我们讲解了数组,数组更多的是用来进行数据的存储,纯粹用来存储数据的数据结构,我们期望的是插入、删除和查找性能都比较好。对于无序数组,插入快,但是删除和查找都很慢,为了解决这些问题,后面我们会讲解比如二叉树、哈希表的数据结构。 而本篇博客讲解的数据结构和算法更多是用作程序员的工具,它们作为构思算法的辅助工具,而不是完全的数据存储工具。这些数据结构的生命周期比数据库类型的结构要短得多,在程序...转载 2019-12-04 21:22:34 · 616 阅读 · 0 评论 -
Java数据结构和算法(二)——数组
上篇博客我们简单介绍了数据结构和算法的概念,对此模糊很正常,后面会慢慢通过具体的实例来介绍。本篇博客我们介绍数据结构的鼻祖——数组,可以说数组几乎能表示一切的数据结构,在每一门编程语言中,数组都是重要的数据结构,当然每种语言对数组的实现和处理也不相同,但是本质是都是用来存放数据的的结构,这里我们以Java语言为例,来详细介绍Java语言中数组的用法。回到顶部1、Java数组介绍 在J...转载 2019-12-04 21:19:48 · 599 阅读 · 0 评论 -
Java数据结构和算法(一)——简介
本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子。 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如果一个开车的人懂变速箱的原理,比如降低速度来获得更大的牵引力,或者通过降低牵引力来获得更快的行驶速度。那么爬坡时使用1档,便可以获得更大的牵引力;下坡时便使用低档...转载 2019-12-04 21:17:58 · 568 阅读 · 1 评论 -
Java 集合详解
一、集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象。但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。为了满足这些常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,而这些对象用什么来容纳呢?我们首先想到了数组,但是数组只能放统一类型的数据,而且其长度是固定的,那怎么办呢?集合便应运而生了!为了对集合有个...转载 2019-12-04 21:16:47 · 585 阅读 · 0 评论 -
Google Java编程风格指南中文版
作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权:自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0,转载请注明作者及出处。目录前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记前言这...转载 2019-11-24 18:17:29 · 632 阅读 · 0 评论 -
Java中用ClassLoader载入各种资源(类、文件、web资源)的方法
ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象。ClassLoader负责载入系统的所有资源(Class,文件,图片,来自网络的字节流等),通过ClassLoader从而将资源载入JVM 中。每个class都有一个引用,指向自己的ClassLoader。1. 获得Clas...转载 2019-11-22 22:09:23 · 694 阅读 · 0 评论 -
Java五道输出易错题解析(进来挑战下)
收集了几个易错的或好玩的Java输出题,分享给大家,以后在编程学习中稍微注意下就OK了。1. 看不见的空格?下面的输出会正常吗?package basic;public class IntegerTest { public static void main(String[] args) { System.out.println(Integer.parse...转载 2019-11-22 22:01:23 · 590 阅读 · 0 评论 -
Java集合必会14问(精选面试题整理)
前言:把这段时间复习的关于集合类的东西整理出来,特别是HashMap相关的一些东西,之前都没有很注意1.7 ->> 1.8的变化问题,但后来发现这其实变化挺大的,而且很多整理的面试资料都没有更新(包括我之前整理的...)1)说说常见的集合有哪些吧?答:Map接口和Collection接口是所有集合框架的父接口:Collection接口的子接口包括:Set接口和Li...转载 2019-10-29 22:52:56 · 670 阅读 · 0 评论 -
Java I/O不迷茫,一文为你导航!
前言:在之前的面试中,每每问到关于Java I/O 方面的东西都感觉自己吃了大亏..所以这里抢救一下..来深入的了解一下在Java之中的 I/O 到底是怎么回事..文章可能说明类的文字有点儿多,希望能耐心读完..什么是 I/O?学习过计算机相关课程的童鞋应该都知道,I/O 即输入Input/ 输出Output的缩写,最容易让人联想到的就是屏幕这样的输出设备以及键盘鼠标这一类的输入...转载 2019-10-29 22:52:50 · 663 阅读 · 0 评论 -
Shiro安全框架【快速入门】就这一篇!
Shiro 简介照例又去官网扒了扒介绍:Apache Shiro™is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-...转载 2019-10-29 22:52:44 · 733 阅读 · 1 评论 -
Java消息系统简单设计与实现
前言:由于导师在我的毕设项目里加了消息系统(本来想水水就过的..),没办法...来稍微研究研究吧..简单简单...需求分析我的毕设是一个博客系统,类似于简书这样的,所以消息系统也类似,在用户的消息里包含了有:喜欢和赞、评论、关注、私信这样的一类东西,这样的一个系统应该包含以下的功能: 当用户评论/关注/点赞时能够通知到被评论/关注/点赞的用户,并生成像如下格式的提示信息(允...转载 2019-10-28 20:49:40 · 1116 阅读 · 1 评论 -
Java集合框架之fastutil
fastutil扩展了 Java集合框架,通过提供特定类型的map、set、list和queue,以及小内存占用、快速访问和插入;也提供大(64位)array、set 和 list,以及快速、实用的 二进制文件和文本文件的I/O类。它是自由软件,依照Apache许可证2.0发布,需要Java 6或更高版本。类实现其标准接口(例如, map 的 Map),可以插入现有代码。此外,它们还提供未在标准...转载 2019-10-23 22:44:49 · 1182 阅读 · 0 评论 -
java.lang包中的常用类
java.lang包java.lang.Boolean类java.lang.Byte类java.lang.Characterjava.lang.Character.Subset类java.lang.Character.UnicodeBlock类java.lang.Class类java.lang.ClassLoader类java.lang.Compiler类jav原创 2015-09-29 17:19:59 · 3148 阅读 · 0 评论 -
Java.math包中常用的类
Java.math包Java.math.BigDecimal类Java.math.BigInteger类实例Java.math.MathContext类实例原创 2015-09-29 17:24:52 · 3123 阅读 · 0 评论 -
java中常用的包
java中常用的包java.lang 基础包java.util 工具包java.math 高精度计算包java.io 输入输入包java.net 网络包java.sql 数据库包java.awt 窗口工具包javax.swing 组件包java.text 文本、日期、数字、消息包原创 2015-09-29 17:28:28 · 1623 阅读 · 0 评论 -
Java.io包中常用的类
Java.io包Java.io.BufferedInputStream类实例Java.io.BufferedOutputStream类使用例子Java.io.BufferedReader类Java.io.BufferedWriter类Java.io.ByteArrayInputStream类Java.io.ByteArrayOutputStream类Java.io.Ch原创 2015-09-29 17:23:09 · 3124 阅读 · 0 评论 -
Java.util包中常用的类
Java.util包Java.util.ArrayDeque类Java.util.ArrayList类Java.util.Arrays类Java.util.BitSet类Java.util.Calendar类Java.util.Collections类Java.util.Currency类java.util.Date类java.util.Dictionary类原创 2015-09-29 17:21:28 · 3988 阅读 · 0 评论 -
获取指定目录下的所有文件名
一、试题描述获取指定目录(例如"E:/test")下的所有文件名二、Java程序import java.io.File;import java.util.ArrayList;public class DirectoryFileName { private static ArrayList filelist = new ArrayList(); public st原创 2015-10-30 11:54:58 · 2125 阅读 · 0 评论 -
eclipse导出jar包
一、在eclipse中,单击菜单【File】-【Export】二、选择包的导出类型在导出对话框中选择【JAR file】,然后单击【Next】三、设置要打包的类及jar包的名字和保存位置勾选自己要打包的类,并勾选右侧对应的.classpath和.project文件,单击【Next】四、保持默认设置,下一步五、设置入口主类原创 2015-10-30 17:52:57 · 1231 阅读 · 0 评论 -
jar包的运行
打好的jar包(例如,Test.jar)如何运行呢?在命令行(例如Windows的cmd、Linux的终端)中输入如下命令即可运行:java -jar Test.jar原创 2015-10-30 21:24:28 · 1101 阅读 · 0 评论 -
VMware虚拟机Ubuntu系统与物理机Windows 7系统共享文件夹
我的VMware虚拟机里装的系统是Ubuntu,物理主机里安装的是Windows 7,如何让虚拟机里的Ubuntu系统与主机的Win 7共享同一个文件夹呢?这样这两个系统之间就不用通过网络或者U盘等方式传输文件等数据了,直接通过同享的文件夹访问就可以了。设置一次,以后就可以直接使用了。一、虚拟机设置启动VMware虚拟机,单击【虚拟机】-【设置】-【选项】,打开虚拟机设置对话框进行选项设置原创 2015-11-17 12:35:47 · 1696 阅读 · 0 评论 -
开发 Eclipse 插件
如何创建、调试和安装插件在本文中,David Gallardo 向您展示了如何使用 Plug-in Development Environment 的代码生成向导来创建 Eclipse 插件。您将学到如何在运行时工作台中运行和调试插件,并且在 Eclipse 中安装完成的插件。David 还研究了与打包插件相关的问题 ― 包括维护版本信息、以插件片段的形式更新功能,以及组合插件转载 2015-12-11 12:43:13 · 1436 阅读 · 0 评论 -
JVM Tool Interface JVM工具接口
JVMTM Tool InterfaceVersion 1.0IntroductionWhat is the JVM Tool Interface?ArchitectureWriting AgentsAgent Command Line OptionsAgent Start-UpAgent ShutdownJAVA_TOOL_OPTIONSEnvironment转载 2016-01-06 14:42:47 · 3004 阅读 · 0 评论 -
深入理解java异常处理机制
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。转载 2016-01-13 14:21:22 · 1150 阅读 · 0 评论 -
Java输入输出流IO
1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 Java.io是大多数面向数据流的输入/输出类的主要软件包。转载 2016-01-13 14:24:47 · 1156 阅读 · 0 评论 -
Java 技术新手入门-Java 初学者的入门指南
developerWorks 在线教程是开发人员学习编程技术的最佳方式之一,它将知识与示例代码通过精心的设计很好的结合在一起,让读者通过亲自动手实践,循序渐进地体验和掌握各种编程技术与开发技能。本栏目将为大家推荐一系列的 Java 教程,这组教程将涵盖 Java 编程技术的多个方面,通过学习,您可以快速的提升 Java 编程技术。Java 平台Java 编程介绍中级转载 2016-04-01 17:36:07 · 3286 阅读 · 0 评论 -
java学习笔记1--开发环境平台总结
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note1.html,转载请注明源地址。1.Java程序设计语言Java程序设计语言是一种高级语言,它用我们熟悉的字词、句等表述需要计算机为我们做的事情。大多数程序设计语言,都要经过编译或解释以便能在计算机上运行。在Java程序设计语言中,所有源代码写在一个扩展名是.java的纯转载 2016-03-21 21:41:40 · 1219 阅读 · 0 评论 -
java学习笔记2--数据类型、数组
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note2.html,转载请注明源地址。1.数据类型Java数据类型有:原始数据类型(Primitive Data Types )引用类型(reference type )Java原始数据类型又称基本数据类型,它说明了在程序中所能表示的基础数据的种类,通常转载 2016-03-21 21:42:18 · 937 阅读 · 0 评论 -
java学习笔记3--类与对象的基础
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note3.html,转载请注明源地址。1、面向对象的程序设计方法概述面向对象的程序设计与结构化程序设计方法相比,更符合人类认识现实世界的思维方式,已成为程序设计的主流方向涉及的主要概念:抽象、封装、继承、多态对象现实世界中:万物皆对象,都具有各自转载 2016-03-21 21:42:58 · 908 阅读 · 0 评论 -
java学习笔记4--对象的初始化与回收
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note4.html,转载请注明源地址。1、对象初始化和回收对象初始化系统在生成对象时,会为对象分配内存空间,并自动调用构造方法对实例变量进行初始化对象回收对象不再使用时,系统会调用垃圾回收程序将其占用的内存回收构造方法一种和类同名的特转载 2016-03-21 21:43:43 · 1162 阅读 · 0 评论 -
java学习笔记5--类的方法
接着前面的学习:java学习笔记4--类与对象的基本概念(2)java学习笔记3--类与对象的基本概念(1)java学习笔记2--数据类型、数组java学习笔记1--开发环境平台总结本文地址:http://www.cnblogs.com/archimedes/p/java-study-note5.html,转载请注明源地址。1、方法的控制流程转载 2016-03-21 21:44:39 · 1158 阅读 · 0 评论