Java
挖坑埋你
这个作者很懒,什么都没留下…
展开
-
JDK | Java利用MessageFormat实现短信模板的匹配
这篇文章主要介绍了 Java 利用MessageFormat实现短信模板的匹配,觉得挺不错的,现在分享给大家,也给大家做个参考。其实没什么技术含量,因为老是想不起来,所以在此文做下记录。通常我们的应用系统中都会有很多短信的发送,或者是信息邮件等的推送,而这些信息却有着相同的共性,比如只是用户名换了下。像下面这条,除了红色字体外,其余都是相同的。尊敬的客户:您的支付宝账户110****1...转载 2019-06-18 17:04:21 · 3946 阅读 · 0 评论 -
JDK 8 新特性 | 接口中的默认方法与静态方法
Java 8 新增了接口的默认方法。为什么要有这个特性?首先,之前的接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口时候,需要修改全部实现该接口的类,目前的java 8之前的集合框架没有foreach方法,通常能想到的解决办法是在JDK里给相关的接口添加新的方法及实现。然而,对于已经发布的版本,是没法在给接口添加新方法的同时不影响已有的实现。所以引进的默认方...原创 2018-06-17 23:10:58 · 836 阅读 · 0 评论 -
JDK 8 新特性 | 对 Fork/Join 的优化
先来简单了解 Fork/Join 框架Fork/Join 框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总。 Fork/Join 框架与传统线程池的区别采用“工作窃取”模式(work-stealing):当执行新的任务时它可以将其拆分分成更小的任务执行,并将小任务加到线程队列中,...原创 2018-06-17 20:48:09 · 6119 阅读 · 0 评论 -
JDK 8 新特性 | 强大的 Stream API
了解 StreamJava8 中有两大最为重要的改变。第一个是 Lambda 表达式;另外一个则是 Stream API( java.util.stream .*) 。Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库...原创 2018-06-17 00:53:57 · 642 阅读 · 0 评论 -
JDK 8 新特性 | 方法引用、构造器引用和数组引用
方法引用方法引用:若 Lambda 体中的功能,已经有方法提供了实现,可以使用方法引用(可以将方法引用理解为 Lambda 表达式的另外一种表现形式)。对象的引用 :: 实例方法名(x) -> System.out.println(x);// 等同于System.out::println类名 :: 静态方法名BinaryOperator<Do...原创 2018-06-16 22:14:49 · 282 阅读 · 0 评论 -
JDK 8 新特性 | 函数式接口
JDK 8 的函数式接口主要在java.util.function包下,大概有四十几个。如下图: 这里给大家提供一下在线文档:英文原版、谷歌翻译版本本文我们只介绍比较重要的几个函数式接口,其他的就不再说明了,如有需要,可以自己根据官方文档研究一下。什么是函数式接口函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法...原创 2018-06-16 19:44:32 · 314 阅读 · 0 评论 -
JDK 8 新特性 | Lambda 表达式
最近发现 JDK 的版本更新的太快了,有点跟不上潮流了,所以拿出点时间来研究下 JDK 8 的新特性。Lambda 表达式概述Lambda 是一个 匿名函数,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使 Java 的语言表达能力得到了提升。Lambda 表达式,也可称为闭...原创 2018-06-16 13:44:43 · 500 阅读 · 0 评论 -
源码学习 | 深入理解 synchronized 实现原理
https://blog.csdn.net/javazejian/article/details/72828483原创 2018-06-12 13:01:00 · 756 阅读 · 0 评论 -
工具类 | JAVA发送HTTP请求,并接受返回内容
/** * Copyright 2017 * 注意:请勿修改 * All right reserved. */import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java....原创 2018-04-27 09:51:02 · 9285 阅读 · 0 评论 -
JDK 8 新特性 | Optional 类
Optional&lt;T&gt; 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在。原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常(更早的发现空指针)。 常用方法 方法 描述 static &lt;T&gt; Optional&lt;T&gt; empty()~~~~~...原创 2018-06-17 23:45:21 · 395 阅读 · 0 评论 -
JDK 8 新特性 | 重复注解与类型注解
Java 8对注解处理提供了两点改进:可重复的注解及可用于类型的注解。@Target({ TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE })@Retention(RUNTIME)public @interface MyAnnotations { MyAnnotation[] value();}@...原创 2018-06-18 00:08:24 · 2120 阅读 · 0 评论 -
加密系列 | SHA加密和解密算法详解&代码示例
import java.security.MessageDigest;/** * 采用SHA加密 * * @author peipei3514 * @datetime 2017-8-11 12:00:34 */public class SHAUtil { /*** * SHA加密 生成40位SHA码 */ public static String shaEncode(...原创 2019-04-30 17:52:22 · 7897 阅读 · 0 评论 -
加密系列 | MD5加密和解密算法详解&代码示例
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。MD5算法特点压缩性:任意长度的数据,算出的MD5值长度都是固定的;容易计算:从原数据计算...原创 2019-04-30 17:50:19 · 4043 阅读 · 0 评论 -
加密系列 | 3DES加密和解密算法详解&代码示例
3DES的在Java的实现与DES类似,如下代码为3DES加密算法、CBC模式、PKCS5Padding填充方式的加密解密结果,参考代码如下所示:import java.security.Key;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;im...原创 2019-04-30 17:40:16 · 1830 阅读 · 0 评论 -
加密系列 | DES加密和解密算法详解&代码示例
算法简介对称加密也就是密钥加密。对称加密和解密使用同一个密钥:加密时,我们用这个密钥初始化密码算法,密码算法对经过它的数据进行加密;解密时,密码算法用同一个密钥初始化,密码算法对经过它的数据进行解密。加密的强度依赖于密钥的长度。一般的对称密钥长度在40-128位之间,有些算法可能更长。建议使用128位以上的对称加密算法,如:DESede(TripleDES)、Blowfish、AE...原创 2019-04-30 17:25:05 · 4821 阅读 · 0 评论 -
加密系列 | Java中常用的加密方法(JDK)
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密和单向加密 ,而双向加密又分为对称加密和非对称加密 (有些资料将加密直接分为对称加密和非对称加密)。双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算是...转载 2019-04-30 17:00:40 · 1164 阅读 · 0 评论 -
Linux 配置 Java 环境变量(详细)
一、解压安装 JDK在 shell 终端下进入 jdk-6u14-linux-i586.bin 文件所在目录,执行命令 ./jdk-6u14-linux-i586.bin,这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车。之后会在当前目录下生成一个 jdk1.6.0_14 目录,你可以将它复制到 任何一个目录下。二、需要配置的环境变量PATH 环境变量:作用是指定命令...转载 2019-03-29 10:15:26 · 14012 阅读 · 2 评论 -
技术杂谈 | 分享Iteye的开涛对IoC的精彩讲解
分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/blog/1413846IoC是什么IoC—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给...原创 2018-06-19 19:47:54 · 666 阅读 · 0 评论 -
JDK 8 新特性 | Nashorn 脚本引擎
Nashorn JavaScript 引擎是 Java 8 的一部分,它与其它像 Google V8 (它是 Google Chrome 和 Node.js 的引擎)的独立引擎相互竞争。 Nashorn 扩展了 Java 在 JVM 上运行动态 JavaScript 脚本的能力。在接下来的大约15分钟里,您将学习如何在 JVM 上动态运行 JavaScript。 通过一些简短的代码示例演...转载 2018-06-18 10:39:43 · 13669 阅读 · 0 评论 -
Android问题—处理微信朋友圈的数据
处理微信朋友圈的数据1、处理好友发布的朋友数据,例如:图片,文字信息,小视频等 2、处理微信朋友圈的点赞数据 3、处理微信朋友圈的评论数据处理朋友圈数据工具类package com.weixin;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;...原创 2018-04-27 09:18:53 · 2821 阅读 · 1 评论 -
工具类 | Java下载远程文件到本地
/** * Copyright 2017 * 注意:请勿修改 * All right reserved. */package test1;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import ja...原创 2018-04-27 09:13:51 · 1621 阅读 · 0 评论 -
HTTPS 简单原理介绍
为什么需要https?HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。举个最常见的例子:用户登陆。用户输入账号,密码,采用HTTP的话,只要在代理服务器上做点手脚就可以拿到你的密码了。用户登陆 –> 代理服务器(做手脚)–> 实际授权服务器在发送端对密码进行加密?没用的,虽然别人不知道...原创 2018-04-07 12:05:09 · 3186 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不转载 2018-01-17 21:21:16 · 303 阅读 · 0 评论 -
JiBX 的简单使用
在学习 Netty 的过程中,有使用 JiBX 的地方,所以这里简单记录一下使用方法。JiBX 简介JiBX 是一个绑定 XML 数据到 Java 对象的框架。JiBX 用一个绑定定义文挡(binding definition document)来定义 XML 数据与 Java 对象转换的规则,这个文挡就是联系 XML 数据与 Java 对象之间的桥梁。 这里有必要先介绍两个数据原创 2018-01-09 10:23:04 · 4517 阅读 · 0 评论 -
Java中的锁
在学习或者使用Java的过程中进程会遇到各种各样的锁的概念:公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁等待。这里整理了Java中的各种锁,若有不足之处希望大家在下方留言探讨。公平锁和非公平锁公平锁是指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来一次获得锁。公平锁的好处是等待锁的线程不会饿死,但是整体效率相对低一些;非公平锁的好处是整体效原创 2018-01-06 13:40:02 · 346 阅读 · 0 评论 -
ThreadPoolExecutor 类的简单介绍
JAVA语言为我们提供了两种基础线程池的选择:ScheduledThreadPoolExecutor和ThreadPoolExecutor。它们都实现了ExecutorService接口(注意,ExecutorService接口本身和“线程池”并没有直接关系,它的定义更接近“执行器”,而“使用线程管理的方式进行实现”只是其中的一种实现方式)。这篇文章中,我们主要围绕ThreadPoolExecut原创 2018-01-05 22:23:11 · 454 阅读 · 0 评论 -
ThreadPoolExecutor 类的高级特性
ThreadPoolExecutor线程池有很多种构造函数,其中最复杂的一种构造函数是:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,原创 2018-01-05 22:20:32 · 393 阅读 · 0 评论 -
JDK安装(bin)
一、下载[root@manager-server /]# mkdir /usr/local/jdk6[root@manager-server /]# cd /usr/local/jdk6/[root@manager-server jdk6]# wget http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64原创 2018-01-05 21:22:59 · 5188 阅读 · 0 评论 -
Java中系统属性Properties介绍 System.getProperty()参数大全
在JDK文档中System类中有这样的方法getProperties(),在此方法的详细介绍中有下面的参数可供使用:java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装目录 java.vm.specification.vers...原创 2018-04-02 21:02:44 · 4076 阅读 · 0 评论 -
CGI与FastCGI介绍
当我们在谈到cgi的时候,我们在讨论什么最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html。事物总是不 断发展,网站也越来越复杂,所以出现动态技术。但是服务器并不能直接运行 php,asp这样的文件,自己不能做,外包给别人吧,但是要与第三做个约定,我给你什么,然后你给我什么,就是我把请求参数发送给你,然后我接收你的处理结果...原创 2018-04-09 13:31:19 · 603 阅读 · 0 评论 -
JDK安装(tar.gz)
1、下载并解压源码包[root@localhost src]# wget http://mirrors.theltfire.com/jdk-8u131-linux-x64.tar.gz[root@localhost src]# tar xvf jdk-8u131-linux-x64.tar.gz2、配置环境变量[root@localhost jdk1.8.0_131]# vi...原创 2018-01-05 21:16:43 · 8054 阅读 · 0 评论