Java
森林公园
这个作者很懒,什么都没留下…
展开
-
面向对象-关于对象
1 关于对象Java 中的每一个对象(Object)都有一个确定的类型(Class),对象自身的类型是在该对象创建时确定的,是对象固有的。对象在创建之后,其类型便是明确的,不可更改的。对象的类型 与 引用该对象的变量的声明类型 之间的关系,后者必须是前者的一个子集,即 后者应当是出现在前者的类型层次结构中的,否则类型不匹配。一个对象可由 类型为该对象自身类型层次中的任何类型的变量所引用,所以 Object 类型的变量能够引用所有的对象,因为它是所有类型层次的根。对某个对象进行类型转换,实质上该对原创 2021-02-08 21:22:57 · 204 阅读 · 0 评论 -
Nutch简介(转4)(CommonCrawl)
原文链接 - CommonCrawl – Extract 4.6 billion Web Documentx.转载 2019-05-16 09:30:34 · 572 阅读 · 0 评论 -
Nutch简介(转1)
x.转载 2019-05-16 09:29:30 · 215 阅读 · 0 评论 -
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 · 220 阅读 · 0 评论 -
Nutch简介(转2)
x.转载 2019-05-16 09:29:51 · 472 阅读 · 0 评论 -
Nutch简介(转3)
x.转载 2019-05-16 09:30:14 · 187 阅读 · 0 评论 -
一个简单的工作者线程实现
一个简单的消费者我认为在涉及多线程/并发编程时,如果没有丰富的经验,则极易出错。所以应当优先使用 JDK 中提供的并发编程类。必须留心共享变量的竞态条件。可能一不小心便会造成死锁。多思考,多分析。且代码尽量简洁,控制共享变量的操作/使用范围。package com.willhonor.test.aboutthread;import java.util.concurrent.ato...原创 2019-06-20 15:01:47 · 202 阅读 · 0 评论 -
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 · 3396 阅读 · 0 评论 -
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 · 304 阅读 · 0 评论 -
Lucene简介(二)
0.原创 2019-05-14 18:04:44 · 179 阅读 · 0 评论 -
Lucene简介(一个 Demo 示例)
0.原创 2019-05-14 18:04:32 · 1623 阅读 · 0 评论 -
Nutch简介(转5)(Apache Nutch Tutorial 1.x)
原文链接 - Apache Nutch Tutorial 1.xx.转载 2019-05-16 09:30:49 · 219 阅读 · 0 评论 -
Java中String使用及分析(UTF-8简单编码/解码器实现)
0.原创 2019-05-05 13:53:04 · 12980 阅读 · 1 评论 -
Java中ThreadLocal使用及分析
0.原创 2019-09-18 18:46:07 · 358 阅读 · 0 评论 -
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 · 357 阅读 · 0 评论 -
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 · 307 阅读 · 0 评论 -
Java中的多线程与锁(二)(锁的概念)
1. 关于锁锁的概念。锁用来起保护作用,控制对被保护对象的访问。对于一个线程来说,锁有 2 中状态,一种状态 ‘可进入’或‘可通过’,这种状态下锁对该线程没有副作用,线程继续执行,而另一种状态 ‘不可进入’或‘不可通过’,这种状态下,锁对该线程产生了约束,线程可能会立即返回或者进入等待状态,直到某个条件成立,使得该线程可以通过锁,而等待过程中,该线程也可能被外部中断唤醒。那么怎样理解:一...原创 2019-04-28 16:32:09 · 322 阅读 · 0 评论 -
Java中的多线程与锁(三)(队列同步器)
1. 队列同步器(java.util.concurrent.locks.AbstractQueuedSynchronizer)队列同步器提供了更改锁状态的最基础的 ‘原子操作’(上一篇文章 Java中的多线程与锁(二) 中有提及) ,所以可以通过使用 队列同步器 来实现自定义的锁组件,这也是设计队列同步器的初衷( java.util.concurrent.locks.AbstractQueue...原创 2019-05-01 22:26:36 · 272 阅读 · 0 评论 -
Lucene简介(三)
1. 关于域(Field)的创建我们知道,在创建索引的过程中,向文档(Document)中添加域(Field)时,有多种方法构建 Field 类的实例。Lucene 大大减少了我们的工作量,也降低了我们出错的机率,Lucene 通过继承 Field 类为我们提供多个 Field 类的子类实现(尽管可以直接实例化 Field 类,但是对于如何配置 Field 对象 即如何创建并初始化 Field...原创 2019-05-15 00:03:24 · 221 阅读 · 0 评论 -
Lucene简介(一)
Lucene 是什么?Lucene 是一款高性能的 / 可扩展的信息检索(IR)工具库。信息检索是指文档搜索 / 文档内信息搜索或者文档相关的元数据搜索等操作。Lucene 提供了一套简单而强大的核心 API,并且在使用它们时,你不必深入理解全文索引和搜索机制,只需要掌握 Lucene 中少数几个类就可以将它集成到你的应用程序中。Lucene 能够把你从文本中解析出来的数据进行索引和搜索,...原创 2019-05-14 18:04:38 · 284 阅读 · 0 评论 -
Java中的流(Stream)(一)(BufferedInputStream)
0. 概述原创 2019-05-10 18:09:12 · 525 阅读 · 0 评论 -
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 · 165 阅读 · 0 评论