Java相关
JavaBoy_XJ
万般皆苦,唯有自渡!
展开
-
WebMagic爬虫框架简单使用
背景:纯属自我爱好和学习,目前只是简单使用,在日常工作中并没有实际应用场景。官网地址: 点我去WebMagic官网官方文档地址:点我去官方文档直接上代码:import us.codecraft.webmagic.Page;import us.codecraft.webmagic.Request;import us.codecraft.webmagic.Site;import us.codecraft.webmagic.Spider;import us.codecraft.webmagic原创 2021-01-27 17:51:33 · 291 阅读 · 0 评论 -
Java后端实现安卓/IOS移动端消息推送(百度云推送)
本文主要介绍Java服务器端如何借助第三方推送平台(百度云推送)推送给移动端消息。使用案例介绍:根据客户的需求,需要做一个类似淘宝消息推送的功能,客户下订单、订单付款、订单商品已发货,以及客户完成评论,都需要以消息推送提示的方式告知商家和卖家这么一个功能,由于之前没有实现过这方面的功能,所以一时之间完全没有概念和思路,在百度和谷歌上找了很久,发现可以借助第三方平台的推送机制来实现该功能,我原创 2015-12-17 10:56:02 · 17809 阅读 · 12 评论 -
Java Message Service
一、简介JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS允许应用程序组件基于JavaEE平台创建、发送、接收和读取消息。它使分布式通信耦合度更低,消息...转载 2019-06-27 09:57:48 · 1070 阅读 · 0 评论 -
bas64图片加密解密
在项目中,我们会经常遇到图片的一些处理,比如说保存图片,下载图片,而我遇到的需求经常的做法是将图片经过base64加密后存入数据库,前端需要的时候,就将加密后的字符串传递给前端,前端自行解密即可。以下代码就是常规的加密解密代码:public class Base64Utils { /** * 图片转化成base64字符串 * * @param imgPat...原创 2019-07-14 11:01:16 · 2606 阅读 · 0 评论 -
base64图片截图
需求:接收到其他服务发送过来的base64的图片,然后给了个截图的4个点的坐标,现在需要根据4个点的坐标,进行截图之后返回到前端去显示出来;主要使用BufferedImage的getSubimage方法;如下所示1>构造个对象封装下这几个参数,从其他服务中接受到数据格式为图片的四个点坐标的一个二维数组,需要转换为截图的点x坐标,y坐标,截图的宽度和高度;所以先封装个对象;通过一个二维数组...原创 2019-07-14 11:14:27 · 1321 阅读 · 0 评论 -
Java程序员必备的一些流程图
1.spring的生命周期Spring作为当前Java最流行、最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要;首先容器启动后,对bean进行初始化按照bean的定义,注入属性检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给bean,如BeanNameAware等以上步骤,bean对象已正确构造,通过实现BeanPostProcessor...转载 2019-07-12 09:40:29 · 1187 阅读 · 0 评论 -
Java 9 新特性概述
Java 9 正式发布于 2017 年 9 月 21 日 。作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化。其中最重要的改动是 Java 平台模块系统的引入。除此之外,还有一些新的特性。 本文对 Java9 中包含的新特性做了概括性的介绍,可以帮助你快速了解 Java 9。Java 平台 模块系统Java 平台模块系统,也就是 Project Jigsaw...转载 2019-07-16 14:14:20 · 190 阅读 · 0 评论 -
Java 10 新特性概述
作为当今使用最广泛的编程语言之一的 Java 在 2018 年 3 月 21 日发布了第十个大版本。为了更快地迭代、更好地跟进社区反馈,Java 语言版本发布周期调整为每隔 6 个月发布一次。Java 10 是这一新规则之后,采用新发布周期的第一个大版本。Java 10 版本带来了很多新特性,其中最备受广大开发者关注的莫过于局部变量类型推断。除此之外,还有其他包括垃圾收集器改善、GC 改进、性能提...转载 2019-07-16 14:21:23 · 173 阅读 · 0 评论 -
Java 11 新特性概述
Java 11 已于 2018 年 9 月 25 日正式发布,之前在 Java 10 新特性介绍中介绍过,为了加快的版本迭代、跟进社区反馈,Java 的版本发布周期调整为每六个月一次——即每半年发布一个大版本,每个季度发布一个中间特性版本,并且做出不会跳票的承诺。通过这样的方式,Java 开发团队能够将一些重要特性尽早的合并到 Java Release 版本中,以便快速得到开发者的反馈,避免出现类...转载 2019-07-16 14:33:09 · 1572 阅读 · 0 评论 -
GC算法 垃圾收集器
概述垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这部分内存的分配和使用都是动态...转载 2019-05-21 14:21:51 · 104 阅读 · 0 评论 -
JVM内存结构
JVM内存结构所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以快速的了解那块的内存区域出现问题,以便于快速的解决生产故障。先看一张图,这张图能很清晰的说明JVM内存结构布局。...转载 2019-05-07 12:09:26 · 182 阅读 · 0 评论 -
java类的加载机制
1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。类加载器并不需要等到某个类被“首次主动使用”时...转载 2019-05-09 10:29:38 · 93 阅读 · 0 评论 -
JDK1.8新特性
一、 接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:interface Formula {double calculate(int a);default double sqrt(int a) { return Math.sqrt(a);}}Formula接口在拥有calculate方...原创 2019-01-09 13:40:21 · 173 阅读 · 0 评论 -
Java 垃圾回收机制
什么是自动垃圾回收?自动垃圾回收是一种在堆内存中找出哪些对象在被使用,还有哪些对象没被使用,并且将后者删掉的机制。所谓使用中的对象(已引用对象),指的是程序中有指针指向的对象;而未使用中的对象(未引用对象),则没有被任何指针给指向,因此占用的内存也可以被回收掉。在用 C 之类的编程语言时,程序员需要自己手动分配和释放内存。而 Java不一样,它有垃圾回收器,释放内存由回收器负责。本文接...转载 2019-01-30 16:08:01 · 115 阅读 · 0 评论 -
java8时间使用
ava8新特性java.time.*包学习。 自从java发布模式变更就发现自己有些跟不上他们的速度,java8还有不少没有用透而9、10、11相继出来,长江后浪推前浪一浪胜过一浪。之前date的使用还不敢自信说多透彻,后续都是泪…以jdk1.8.0_111为例新的设计思路引入final定义支持时间点不可变和线程安全,长久来的Date的设计一直遭人诟病着;设计LocalDate、Loc...转载 2019-01-31 09:40:06 · 1014 阅读 · 0 评论 -
lambda入门
Sun在2009年开启了代号为“dolphin”的工程,计划在JDK1.7中加入lambda表达式、虚拟机模块化支持、动态语言支持等新特性。但是由于深陷商业竞争,市值严重缩水,Sun无法在预计的时间内完成JDK的迭代。2010年,Oracle收购Sun,执行新计划,放缓了更新的节奏,将lambada等功能顺延至1.8版本。2013年,JDK1.8版本正式发布,这是Java语言历史上浓墨重彩的一...转载 2019-02-18 10:03:25 · 205 阅读 · 0 评论 -
Java开发神器Lombok的使用与原理
在面向对象编程中必不可少需要在代码中定义对象模型,而在基于Java的业务平台开发实践中尤其如此。相信大家在平时开发中也深有感触,本来是没有多少代码开发量的,但是因为定义的业务模型对象比较多,而需要重复写Getter/Setter、构造器方法、字符串输出的ToString方法和Equals/HashCode方法等。那么是否一款插件或工具能够替大家完成这些繁琐的操作呢?本文将向大家介绍一款在Eclip...转载 2019-02-12 16:51:54 · 234 阅读 · 0 评论 -
ArrayList与LinkedList的区别
Arraylist 和 LinkedList 是 Java 集合框架中用来存储对象引用列表的两个类。Arraylist 和 LinkedList 都实现 List 接口。首先,让我们了解一下它们最重要的父接口——List。1. List 接口列表(list)是元素的有序集合,也称为序列。它提供了基于元素位置的操作,有助于快速访问、添加和删除列表中特定索引位置的元素。List 接口实现了...原创 2019-02-25 16:23:32 · 209 阅读 · 0 评论 -
Java线程池
身为程序员我们对线程是再熟悉不过了,多线程并发算是Java进阶的知识,用好多线程不容易有太多的坑。创建线程也算是一个"重"操作。创建线程的语句是new Thread()咋一看好像就是new了一个对象。没错是new了个对象,但是不仅仅是普通对象那样在堆中分配了一块内存,它还需要调用操作系统内核API,然后操作系统再为线程分配一些资源。所以较普通对象,线程就比较“重了”。所以我们要避免频繁的创建和销...转载 2019-04-20 20:53:09 · 127 阅读 · 0 评论 -
枚举Enum
什么是枚举什么是枚举?说实话,在我这些年的开发生涯中,用过枚举的次数大概两只手都可以数的过来。当然你不能说枚举一无是处,只能说是我对 Java 理解的还不够深刻,在可以使用枚举的时候并没有去使用。假设我有两个孩子(其实不用假设),每到周末他们都不知道去上什么辅导班。于是我就写了一个简单的程序来告诉他们,伪代码如下:public final static int DAVID = 0;publ...转载 2019-04-19 15:08:41 · 176 阅读 · 0 评论 -
ACID是什么?
什么是ACID?ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).这是可靠数据库所应具备的几个特性.所以ACID就是这四大特性的缩写。原子性(Atomicity)原子性意味着数据库中的事务执行是作为原子。即不可再...原创 2018-12-27 14:00:34 · 35645 阅读 · 3 评论