自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 面向对象-关于对象

1 关于对象Java 中的每一个对象(Object)都有一个确定的类型(Class),对象自身的类型是在该对象创建时确定的,是对象固有的。对象在创建之后,其类型便是明确的,不可更改的。对象的类型 与 引用该对象的变量的声明类型 之间的关系,后者必须是前者的一个子集,即 后者应当是出现在前者的类型层次结构中的,否则类型不匹配。一个对象可由 类型为该对象自身类型层次中的任何类型的变量所引用,所以 Object 类型的变量能够引用所有的对象,因为它是所有类型层次的根。对某个对象进行类型转换,实质上该对

2021-02-08 21:22:57 182

原创 Java中ThreadLocal使用及分析

0.

2019-09-18 18:46:07 339

原创 Mybatis基本使用(一)

1. 基本配置(这里强调的重点不在于配置细节,而在于 .dtd 文件的引用位置)mybatis.config.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.o...

2019-07-29 21:18:38 232

原创 Jetty使用的基本命令

Jetty最新官方文档参考1. Jetty使用的基本命令# 启动$ java -jar start.jar> java -jar $JETTY_HOME/start.jar --help> cd $JETTY_HOME/demo-base/> java -jar $JETTY_HOME/start.jar --list-modules...> jav...

2019-07-28 15:38:33 355

原创 Jetty-9.4.18 配置SSL(以及获取/使用阿里云免费SSL证书)

参考阿里云官方文档-Jetty服务器配置SSL证书1. 准备工作

2019-07-26 00:11:27 1144

转载 SLF4J用户手册(官网截图)

x.

2019-07-11 20:23:42 164

原创 使用Eclipse创建Maven-Java Web项目

我所使用的 Eclipse IDE 版本为 4.10这里介绍的创建方式,并不能一步操作便完成创建工作(还需作小小的改动)。1. 首先,使用 Eclipse 中自带的 Maven-webapp 原型(Archetype)创建一个 Maven 项目第一步,选择创建 Maven 项目。注意不要勾选下图标识的复选框,因为我们需要使用到 archetype 来帮助我们。继续下一步, ‘ Nex...

2019-07-11 10:05:42 279

原创 问题:使用Spring,当从容器获取bean时,要尤其注意Spring对bean的生命周期的自动管理

1. 关于 Bean 的初始化问题使用 Spring,当从容器获取 bean 时,要尤其注意 Spring 对 bean 的生命周期的自动管理,因为这部分由 bean 参与的 生命周期调用,对于该 bean 的构造器来说是透明的,而当排查 bean 的初始化问题时,可能会忽略由该 bean 实现生命周期调用。...

2019-07-08 11:18:42 176

原创 问题:使用jdbc时,resultSet始终不能获取第一行数据

使用jdbc时,resultSet 始终不能获取第一行数据,解决方法:在遍历结果集resultSet 之前,先调用一次 ’ beforeFirst() ’ 重置游标的位置到第一行之前即可。 @Test// @SuppressWarnings("unchecked") public void test_query_data_from_userTable() throws Exception...

2019-07-06 22:38:51 3616 3

原创 Spring基本使用(消息源MessageSource的使用/国际化)

0. 使用 spring 提供的消息源,简单示例资源包路径结构如下(项目结构)(资源包文件编码统一为 UTF-8 编码,这里仅仅使用 language-code 作为资源文件划分)1.1 文件 my_message_source_zh.properties 和 my_message_source_en.properties 的内容分别为: // zh版本(中文版) 文件的内容 app...

2019-07-04 01:05:40 4868

原创 Spring基本使用(元素replaced-method使用)

0.0当元素 lookup-method 和 replaced-method 一起使用时,元素 lookup-method 的优先级更高,会覆盖元素 replaced-method。所以应当避免同时使用这两个元素来配置同一个 method。元素 replaced-method 可以实现元素 lookup-method 的功能,但是它更强大,接口 org.springframework.be...

2019-07-03 21:25:19 4325 2

原创 Spring基本使用(元素lookup-method使用)

0可以使用 元素 lookup-method 来取代 ApplicationContextAware 接口,避免应用代码直接和和 Spring 代码耦合在一起1. 使用 ApplicationContextAware 接口实现假设对单例 bean A 中某个方法 method-a 的每次调用,都需要获取一个新的 bean B 实例。这种情景中,可以让 bean A 实现 Applica...

2019-07-03 18:22:49 1325

原创 Maven使用(一)

1. 导出 Maven 项目(非 Web 项目)为单个 jar 文件pom.xml 文件中使用如下配置(使用 Maven 插件),运行 Maven 命令: “assembly:assembly”,将在 target 目录生成 2 个 jar 文件。 <build> <finalName>jj-my-gg</finalName> <plugi...

2019-07-03 15:17:45 147

原创 一个简单的工作者线程实现

一个简单的消费者我认为在涉及多线程/并发编程时,如果没有丰富的经验,则极易出错。所以应当优先使用 JDK 中提供的并发编程类。必须留心共享变量的竞态条件。可能一不小心便会造成死锁。多思考,多分析。且代码尽量简洁,控制共享变量的操作/使用范围。package com.willhonor.test.aboutthread;import java.util.concurrent.ato...

2019-06-20 15:01:47 182

原创 Java中的Zip文件操作

0. 简介简单的生成和读取 zip 文件package com.willhonor.test;import static java.nio.charset.StandardCharsets.UTF_8;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;...

2019-06-06 16:55:04 3328

原创 Java与C语言中的命令行参数获取

0. Java 语言和 C 语言中的命令行参数的获取(对比)Java 获取命令行参数,简单代码如下:/** Test_1.java */package com.willhonor.test;public class Test_1 { public static void main(String[] args) { int count = 1; System.out.prin...

2019-06-05 23:42:52 282

转载 Nutch简介(转5)(Apache Nutch Tutorial 1.x)

原文链接 - Apache Nutch Tutorial 1.xx.

2019-05-16 09:30:49 195

转载 Nutch简介(转4)(CommonCrawl)

原文链接 - CommonCrawl – Extract 4.6 billion Web Documentx.

2019-05-16 09:30:34 532

转载 Nutch简介(转3)

x.

2019-05-16 09:30:14 162

转载 Nutch简介(转2)

x.

2019-05-16 09:29:51 451

转载 Nutch简介(转1)

x.

2019-05-16 09:29:30 187

原创 Lucene简介(四)(简单使用)

0. 对指定目录中的文件进行索引并执行搜索Lucene 版本为 8.0.0,需要 JDK 8.0 及以上版本。1.1 索引程序如下:import static org.junit.Assert.*;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java...

2019-05-15 12:17:44 197

原创 Lucene简介(三)

1. 关于域(Field)的创建我们知道,在创建索引的过程中,向文档(Document)中添加域(Field)时,有多种方法构建 Field 类的实例。Lucene 大大减少了我们的工作量,也降低了我们出错的机率,Lucene 通过继承 Field 类为我们提供多个 Field 类的子类实现(尽管可以直接实例化 Field 类,但是对于如何配置 Field 对象 即如何创建并初始化 Field...

2019-05-15 00:03:24 199

原创 Lucene简介(二)

0.

2019-05-14 18:04:44 156

原创 Lucene简介(一)

Lucene 是什么?Lucene 是一款高性能的 / 可扩展的信息检索(IR)工具库。信息检索是指文档搜索 / 文档内信息搜索或者文档相关的元数据搜索等操作。Lucene 提供了一套简单而强大的核心 API,并且在使用它们时,你不必深入理解全文索引和搜索机制,只需要掌握 Lucene 中少数几个类就可以将它集成到你的应用程序中。Lucene 能够把你从文本中解析出来的数据进行索引和搜索,...

2019-05-14 18:04:38 265

原创 Lucene简介(一个 Demo 示例)

0.

2019-05-14 18:04:32 1546

原创 Java中的流(Stream)(一)(BufferedInputStream)

0. 概述

2019-05-10 18:09:12 497

原创 Java中String使用及分析(UTF-8简单编码/解码器实现)

0.

2019-05-05 13:53:04 12751 1

原创 Java中的多线程与锁(四)(队列同步器)

0. 先来分析下以共享模式获取以及释放锁的两个方法,即 boolean releaseShared(int arg) 和 void acquireShared(int arg)先看 acquireShared 方法,该方法尝试以共享模式获取锁,其源代码如下:public final void acquireShared(int arg) { if (tryAcquireSh...

2019-05-02 18:55:38 289

原创 Java中的多线程与锁(三)(队列同步器)

1. 队列同步器(java.util.concurrent.locks.AbstractQueuedSynchronizer)队列同步器提供了更改锁状态的最基础的 ‘原子操作’(上一篇文章 Java中的多线程与锁(二) 中有提及) ,所以可以通过使用 队列同步器 来实现自定义的锁组件,这也是设计队列同步器的初衷( java.util.concurrent.locks.AbstractQueue...

2019-05-01 22:26:36 252

原创 Java中的多线程与锁(一)(关于同步)

1. 简介先来引入多线程中可能存在的问题。下面是一个例子:多个线程同时更新计数器/* * 多个线程同时更新计数器(模拟多线程中可能存在的问题) */public class Temp_1 { public static void main(String[] args) { // 连续模拟操作 10 次 for(int i = 0;i < 10;i++) { up...

2019-04-28 16:32:17 340

原创 Java中的多线程与锁(二)(锁的概念)

1. 关于锁锁的概念。锁用来起保护作用,控制对被保护对象的访问。对于一个线程来说,锁有 2 中状态,一种状态 ‘可进入’或‘可通过’,这种状态下锁对该线程没有副作用,线程继续执行,而另一种状态 ‘不可进入’或‘不可通过’,这种状态下,锁对该线程产生了约束,线程可能会立即返回或者进入等待状态,直到某个条件成立,使得该线程可以通过锁,而等待过程中,该线程也可能被外部中断唤醒。那么怎样理解:一...

2019-04-28 16:32:09 299

原创 Linux 套接字:简介(一)(?)

目录

2019-04-13 23:09:48 1260

原创 数据结构:缓冲区/缓存简单实现

利用 取余运算 使得读/写指针在长度为 capacity 的连续内存空间上循环进行读/写操作(待加入:线程安全的读/写函数)目录头文件 buffer.h源文件 buffer.c1. 头文件 buffer.h/* buffer.h */#include <stdlib.h>#include <stdio.h>#include <errno.h&...

2019-04-12 17:34:34 2754 1

转载 GCC 中的 aligned 和 packed 属性(关于地址对齐)

原文链接 - GCC 中的 aligned 和 packed 属性(关于地址对齐)x.

2019-04-12 10:51:45 2592

原创 Linux 内存管理

竟然可以手动分配内存!想想还有点小激动。目录内存操作函数(malloc / calloc / realloc / memcpy 等)demo(malloc 函数,简单内存分配)malloc 函数可以保证其返回的内存是地址对齐的(关于地址对齐),所以它可以被转换为任何类型的指针。demo(将结构体指针指向一块 ’精心安排的‘ 内存区域,并打印该结构体成员变量)#inclu...

2019-04-12 10:34:41 127

原创 问题:C 语言结构体类型参数 与 结构体指针类型参数 的区别

结构体类型 参数传递的是结构中所有成员的副本。而 结构体指针类型 参数传递的是指向原结构体的指针。代码/* test3.c */#include <stdio.h>struct data { int i; char *msg;};void changeData1(struct data d); // 结构体类型参数void changeD...

2019-04-11 15:33:53 543

原创 Linux 线程

目录线程操作函数( pthread_create / pthread_join / pthread_exit)(C 与 Java 实现对比)(编译程序时需要用选项 ‘-pthread’ 来链接线程库)1. 线程操作函数(创建一个新的线程,C 语言 与 Java 对比)C 语言实现,代码如下:/* test1.c */#include <stdio.h>#in...

2019-04-10 17:02:48 147

原创 Linux 进程信号屏蔽字 - 设置进程信号屏蔽字

在使用 sigaction 函数处理信号时,可以一并设置进程的信号屏蔽字。但是有单独的函数可以用来设置进程的信号屏蔽字:sigprocmask 函数。sigprocmask 函数#include <signal.h>int sigprocmask(int how, const sigset_t *set, sigset_t *oset);参数 how 的取值如下:...

2019-04-09 16:21:20 865

原创 Linux 信号(signal)

信号是 UNIX 和 Linux 系统响应某些条件而产生的一个事件。接收到该信号的进程会相应的采取一些行动。我们用术语 生成 表示一个信号的产生,使用术语 捕获 表示接收到一个信号。信号是由于某些错误条件而生成的,如 内存段冲突 / 浮点处理器错误 或 非法指令等。它们由 shell 和终端处理器生成来引起中断,它们还可以作为在 进程间传递消息 或 修改行为 的一种方式,明确地由一个进程发送给...

2019-04-09 15:37:52 362

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除