- 博客(47)
- 资源 (24)
- 收藏
- 关注
原创 Maven Core Lecture
Maven 是一款基于 Java 平台的项目构建,依赖管理的工具,使用 Maven 可以自动化构建,测试,打包和发布项目,大大提高了程序员的开发效率。
2024-05-18 09:15:21 753 1
原创 Java四种引用类型
Java 四种引用类型引用与对象每种编程语言都有自己操作内容中元素的形式,例如C和C++通过指针,Java中则通过"引用"。Java中一切皆对象,但我们操作的标识符实际上是对象的一个引用"reference".// 创建一个引用,引用可以独立存在,并不一定要与一个对象关联String s;// 引用的标识符指向某个对象,可以通过这个引用来操作对象了。String str = n...
2020-04-28 12:55:28 334
原创 深入理解Java8
深入理解 Java8简介Java8 可谓是Java语言历史上变化最大的一个版本,其承诺要调整Java编程向着函数式风格迈进,这有助于编写出更为简介、表达力更强,并且在很多情况下能够利用并行硬件的代码。学习后可以通过Lambda表达式使用一行代码编写Java函数、如何通过这种功能使用新的Stream API进行编程,如何将冗长的集合处理代码压缩为简单且可读性更好的流程序。学习创建和消费流的机制,...
2020-03-27 17:07:43 582
转载 Multilanguage Database Design in MySQL
This tutorial describes most popular techniques of creating database for multilanguage web sites.请参考:https://www.apphp.com/tutorials/index.php?page=multilanguage-database-design-in-mysqlBuilding...
2019-12-25 16:36:31 422
原创 设计模式-单例模式的几种创建方式
单例模式定义Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例)创建方式创建方式分为饿汉式、懒汉式、双重检查、静态内部类、枚举等。饿汉式静态属性创建/** * 采用饿汉式创建单例 * 使用静态...
2019-12-16 22:50:01 174
原创 MacOS中Docker 安装 MySQL
Docker install MySQL in MacOSMacOS 安装 Docker使用 Homebrew 来安装 Docker离线安装Docker 安装 MySQLDocker 启动 MySQL登录MySQL容器MySQL 修改字符集查看MySQL字符集修改字符集重启MySQL容器MacOS 安装 Docker使用 Homebrew 来安装 Docker$ brew cask inst...
2019-07-31 23:13:48 1073
原创 Java 程序的重试机制
重试机制要重试的话,一般采用循环的方式。循环中满足条件则退出循环,同样也可以设置最大重试次数。Java中的循环体包括,for,while,do...while等。do…while循环 public Object getValueWithRetry(int maxRetry) { int time = 0; Object result = null;...
2019-07-19 11:08:49 1393
原创 Java 日期区间与日期区间集合的差集 代码实现
Java 一个日期区间与一个日期区间集合的差集 代码实现0. 解决思路1. 定义包含[开始日期~结束日期]的对象DateObject2. 初始化DateObject集合对象3. DateObject集合中的日期区间合并4. 已知日期区间`date`与日期区间集合`list`求交集5. 已知日期区间`date`再与交集`intersection`求差集`differences`6. 测试类项目中...
2019-06-25 18:27:51 4175 5
原创 Java 日期工具类
Java8 日期工具类Date 与 LocalDateTime 互转Date 与 LocalDate 互转获取 Date 的当天开始时间获取 Date 的当天结束时间获取date所属月份第一天获取date所属月份最后一天获取两个日期之间所有日期集合date加上days后的日期Date 与 LocalDateTime 互转 /** * LocalDateTime 转 Date ...
2019-06-25 16:59:30 194
原创 Java中对象命名(POJO、PO、BO、VO、DTO、DAO)说明
1. POJO(Plain Ordinary Java Object)。简单而言,就是一个简单的对象,没有任何约束。 POJO 也会泛指用来做传输对象 Java bean (包括DTO、VO 、BO、PO等)。2. DTO(Data Transfer Object)数据传输对象,单纯用来数据传输的对象。3. PO(Persistant Object)持久化对象,是数据库中的表相映射...
2019-01-10 18:02:00 10066
原创 CentOS7中MySQL5.7 主主互备配置
CentOS7 中 MySQL 5.7 主主互备配置 先从MySQL对数据库复制的能力看,MySQL支持单向、异步的复制。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环。当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发...
2018-05-12 18:02:34 5573
原创 CentOS7 中MySQL5.7 安装
1. MySQL repo下载需要到MySQL官网下载MySQL的yum repository: http://dev.mysql.com/downloads/repo/yum/. 我们使用的是CentOS7 所以下载这个:使用rpm对下载的rpm文件进行安装:shell> sudo rpm -Uvh mysql80-community-release-el6-...
2018-05-12 17:24:21 801
原创 Docker 学习记录(二)
Docker 国内镜像加速使用docker中的一重大问题就是国外镜像很不稳定,而且国内经常连不上,所以就有了国内专有的镜像加速。修改Docker配置在 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。如果此文件不存在,需要自己手动创建一下,内容如下:{ "registry-mirrors": ["https://regi...
2018-04-20 23:11:36 179
原创 Docker 学习记录(一)
Docker学习记录(一)工作中计划使用Docker来部署项目,所以就看了看docker的知识,再此做一记录。Docker 安装这个安装可费老鼻子劲儿了,网上找了各种学习资料,发现各种不靠谱,只能硬着头皮去看官网的英文了,地址:docker 官网,找到了CentOS安装docker的方式:CentOS install docker,我选择的是用yum安装。安装Docker 镜像...
2018-04-20 23:06:34 198
原创 NodeJs ORM框架之 Sequeslize 生成model的工具sequelize-gen
sequelize-gen说明sequelize-gen工具可以根据数据库中的表来生成对应的model,很大程度上方便了程序员去手动创建model。 此命令示例如下:sequelize-gen -h host -p 'port' -d 'db_name' -u user -x password -e'mysql' -o ./models -t 'table_name'命令行参...
2017-12-11 15:15:29 1880
原创 Java Web应用程序认证 -- 基于JDK7的License开发应用以及认证
在软件或产品交付时,我们往往会授权给第三方或者防止程序乱部署而对部署的服务器进行认证,此时License就排上用途了。授权的方便在于如果证书过期,我们可以重新生成一个认证文件而不用修改程序。
2017-12-04 17:44:22 8623 10
原创 读取Jar包中的配置文件
读取Jar包中的配置文件在打包前和打包后有区别:打包前: getClass().getClassLoader().getResourceAsStream(propertiesPath);这样读的InputStream为BufferedInputStream实例,打包后:将以流为sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream实
2017-12-01 10:42:45 2728
翻译 Java NIO (二) 通道(Channels)
Channelschannels与buffers配合去实现高性能的I/O操作。本章向你介绍NIO的channel类型。
2017-11-02 21:24:00 3143
翻译 Java NIO (一) 缓存区(Buffers)
最近在学习java nio,但是苦于没有找到中文资料,所以下决心计划将资料《Java I-O, NIO and NIO.2》中的NIO和NIO.2两部分翻译成中文,自己水平有限,如有不当之处请看客指出,我会努力修改。
2017-10-22 13:44:29 607
原创 Java 并发编程(九)并发集合框架
集合框架简介编程中,我们经常需要集中存放多个数据。数组是我们的一个很好的选择,前提是我们事先明确我们将要保存对象的数量。数组在初始化时如果指定了长度,那这个数组长度就是不可变的了,如果我们需要保存一个可以动态增长的数据(编译时无法确定具体的对象数量),所以Java提供了集合框架来实现这个功能。
2017-10-18 19:59:31 7195
原创 Java 并发编程(八)Future和Callable,CompletionService的使用
Future和Callable介绍 线程Thread默认情况下不具有返回值的功能,如果在需要取得返回值的情况下是极为不方便的,在Java5的并发包中可以使用Future和Callable来实现线程具有返回值的功能。
2017-10-14 16:39:49 653
原创 Java 并发编程(七)Fork/Join框架
什么是Fork/Join框架 Fork/Join框架是Java7提供的并行执行任务的框架,是把大任务分割成若干小任务,最终汇总每个小任务结果后得到大任务结果的框架。 再从字面意思来理解一下Fork/Join框架的意思,Fork就是切分大任务成小任务并行执行,Join就是合并小任务的结果得到大任务的结果。
2017-10-11 21:13:44 374
原创 Java 并发编程(六)线程池Executors与ThreadPoolExecutor
为什么使用线程池?在开发服务器软件时,我们经常需要处理执行时间比较短但是数量巨大的请求,如果每个请求都创建一个新的线程来处理,那就会导致线程太多而遇上系统性能的瓶颈,因为线程的创建和销毁需要JVM进行处理,如果请求时间太短,那就在线程的创建和销毁对象上花费的时间大于线程执行的时间,如果是这样,那性能就大大降低了。 考虑到以上问题,java在jdk5中提供了线程池的支持,当然我们可以自己来实现
2017-09-29 11:44:47 483
原创 Java 并发编程(五)同步锁Lock的使用
除了上篇讲的synchronized关键字来实现同步,java5中也提供了Lock对象来实现同步的效果,我们重点学习以下两个知识点。ReentrantLock类ReentrantReadWriteLock类1. ReentrantLock 类的使用java多线程中,synchronized关键字实现多线程之间的同步,但是ReentrantLock类也能达到同样的效果,并且在扩展功能上也更强大,
2017-09-26 21:03:06 586
原创 Java 并发编程(三)线程管理
线程管理根据[ Java 并发编程(二)线程状态跃迁](http://blog.csdn.net/hongguo_cheng/article/details/78089854)可知线程包含了如下几种状态:1.新建状态(New)2.就绪状态(Runnable)3.运行状态(Running)4.阻塞状态(Blocked)5.死亡状态(Dead)Java中自带了对多线程技术的支持,实现多线程编
2017-09-26 11:10:32 314
原创 Java 并发编程(二)线程状态跃迁
线程的状态:1、新建状态(New)新创建了一个线程对象。示例: Thread t = new Thread();2、就绪状态(Runnable)线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。示例: t.start();3、运行状
2017-09-25 21:45:37 542
原创 Java 并发编程(一)线程与进程
1. 进程1.1 概念 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。2. 线程2.1 概念 线程,有时被称为轻量级进程(Lightweight
2017-09-25 19:19:41 286
原创 Java 并发编程(四)线程同步关键字volatile和synchronized
线程,是程序执行流的最小单位。是进程中的一个实体,是被系统独立调用和分派的基本单元,线程自己不拥有系统资源,只是拥有在运行中必不可少的资源,但是可以与同属一个进程的其他线程共享全部资源,一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以兵法执行。单个程序中同时运行多个线程完成不同工作,称之为多线程。java中并发包:java.util.concurrent
2017-09-14 20:53:30 563
原创 Apache ActiveMQ Cluster Master and Slave with JDBC
1. ActiveMQ 安装1.1 ActiveMQ下载 wget http://archive.apache.org/dist/activemq/5.14.5/apache-activemq-5.14.5-bin.tar.gz1.2 包解压 tar -xf apache-activemq-5.14.5-bin.tar.gz1.3 启动ActiveMQ cd apache-activ
2017-06-20 23:21:10 331
原创 Redis系列学习(三)将redis作为服务发布(基于Centos7)
1.安装redis2.安装完毕后操作如下进入到redis/utils目录中 cd /usr/local/redis/utils执行install_server.sh脚本 ./install_server.sh根据提示可默认选择执行(加粗是可自行配置) Welcome to the redis service installer This script will help you eas
2017-06-12 00:32:12 269
原创 知识杂碎
1.npm修改淘宝镜像 npm config set registry=https://registry.npm.taobao.org2.nohup 命令用途:不挂断地运行命令。语法:nohup Command [ Arg … ] [ & ]例子:nohup /root/start.sh &3 npm install异常:Unexpected end of JS
2017-05-24 11:58:15 276
原创 NodeJS的Express框架获取Http请求参数
官方文档中包含了三种方式获取请求参数 1. req.params 如果你的route设置为此形式:/user/:name, 然后“name” 属性就可以使用 req.params.name 获取。对象默认值为{}。 例子如下:// GET /user/tjreq.params.name// => "tj"如果你用正则表达式定义route时, 可以使用req.params[n]数组来获取请求
2017-05-10 16:13:02 1589
原创 Java IO 其他流 -- 字节数组流,字符数组流和数据流
字节数组流 1.1 字节数组输入流ByteArrayInputStream 参考其源码方法,相对于InputStream,没有新增方法,所以使用也与InputStream一样,可以使用多态,例子如下:public static void read(byte[] msg) throws IOException { InputStream is = new ByteArrayInputS
2016-08-10 14:28:44 463
原创 Java IO 转换流的读入和写出
Java IO 转换流的读入和写出 转换流主要是将字节流转换成字符流,主要目的是解决读取和写出乱码问题,以下情况会导致乱码: 1) 读取和写出编码字符集不一致; 2) 读取和写出数据不完整。1、InputStreamReader 转换输入流 InputStreamReader 读入文本时将字节流转换成字符流。1.1 InputStreamReader 的dem
2016-08-03 00:01:45 399
Effective Java - 3rd
2019-06-17
Scalable IO in Java -- Doug Lea
2019-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人