
Java程序设计
程裕强
开源是人类最大的公益事业!--程裕强
展开
-
Java读取Oracle的CLOB字段转换为String数据
1、方法1 流处理if (type.equalsIgnoreCase("CLOB")) { Clob clob=resultSet.getClob(columnIndex); String result=clob2String(clob); System.out.println("流处理读取CLOB:\n"+...原创 2019-03-15 10:23:51 · 6188 阅读 · 1 评论 -
Java IO流处理 面试题汇总
说明:本节内容来源于网络汇总输入输出流是相对于内存而言的!1、面试题汇总(1)java中有几种类型的流?字符流和字节流。字节流继承inputStream和OutputStream,字符流继承自InputSteamReader和OutputStreamWriter。(2)谈谈Java IO里面的常见类,字节流,字符流、接口、实现类、方法阻塞答:输入流就...原创 2018-01-27 22:17:36 · 109081 阅读 · 18 评论 -
Java设计模式之观察者模式(发布/订阅模式)
1、概述观察者模式又称为发布/订阅(Publish/Subscribe)模式观察者设计模式涉及到两种角色:主题(Subject)和观察者(Observer)(1)Subject模块 Subjec模块有3个主要操作addObserver():注册添加观察者(申请订阅)deleteObserver():删除观察者(取消订阅)notifyObserver():主题状态发生变化时通...原创 2018-01-31 21:28:35 · 21564 阅读 · 4 评论 -
Java设计模式之装饰模式
1、装饰模式在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰者与被装饰者拥实现了共同的接口。在装饰模式中的角色有: ● 抽象接口(Component)角色:规范准备接收附加责任的对象。 ● 具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。 ● 装饰(Decorato...原创 2018-02-03 14:38:28 · 336 阅读 · 0 评论 -
Java设计模式之单例模式
1、一般单例模式一般单例模式口诀:两私一公。 具体说就是私有构造方法、私有静态实例、公开的静态获取方法。1.1 懒汉式public class LazySingleton { private static LazySingleton instance=null; private LazySingleton(){} /** * 在多线程的情况下...原创 2018-02-03 19:27:21 · 464 阅读 · 1 评论 -
基于Lock+Condition实现生产者消费者模式
package demo;import java.util.ArrayList;import java.util.List;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;...原创 2018-01-27 17:47:00 · 1119 阅读 · 0 评论 -
Java Lock机制解读
1、synchronizedsynchronized是Java语言内置的特性,用来实现对资源的同步访问以及用wait和notify来实现线程间通信。如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁。 存在问题:那么如果这个获取锁的线程由于要等待IO或者其他原因(比如调用sleep方法)被阻塞了,但是又没原创 2018-01-27 16:20:11 · 4484 阅读 · 0 评论 -
Java join线程最简单例子
1、普通多线程package demo;public class JoinThread extends Thread { public JoinThread(String name){ super(name); } @Override public void run(){ for(int i=0;i100;i++){原创 2018-01-27 11:22:06 · 377 阅读 · 0 评论 -
Java多线程3种实现方式
1、继承Thread类package demo;public class FirstThread extends Thread{ private String name; // 定义name属性 public FirstThread(String name) { this.name = name; } public void run()原创 2018-01-26 11:47:52 · 407 阅读 · 0 评论 -
常见排序算法Java实现
package test;public class SortDemo { /** * 输出数组 * @param a */ public static void show(int[] a){ for(int i:a){ System.out.print(i+" "); } S原创 2018-01-10 11:34:40 · 401 阅读 · 0 评论 -
Eclipse导入Web项目 src、web、css、js等变成包解决办法
1.问题描述git克隆下来一个普通的Java web项目[root@hadron hadron]# git clone -b kylin git@192.168.1.2:hadron/web_store.git然后Eclipse导入该web项目产生异常,整个项目成为Java Resources的子目录,src变成了包,jsp web页面,css,javascript等也变成了包。原创 2018-01-29 15:06:48 · 5202 阅读 · 0 评论 -
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.165' (113)
1、程序报错:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link2、尝试远程连接数据库:[root@inode1 ~]# mysql -h192.168.1.165 -uroot -p123456ERROR 2003 (HY000): Can't connect to MySQL原创 2017-01-09 12:50:17 · 35386 阅读 · 8 评论 -
更改Tomcat日志目录
1、修改conf/logging.properties[root@elastic1 apache-tomcat-8.5.35]# vi conf/logging.properties############################################################# Handler specific properties.# Describes sp...原创 2019-01-18 14:06:34 · 2662 阅读 · 0 评论 -
Tika简单实例应用
1、Maven pom.xml创建Maven项目,添加以下依赖 <!-- https://mvnrepository.com/artifact/org.apache.tika/tika-core --> <dependency> <groupId>org.apache.tika</groupId&原创 2018-12-27 18:02:33 · 2153 阅读 · 0 评论 -
Java程序设计(Java9版):第8章 代码块与内部类
类的成员,除了属性与方法(包含构造器),还有代码块和内部类7.1 代码块jshell> class CodeBlock{ ...> { ...> System.out.println("构造代码块"); ...> } ...> static { ...>原创 2018-10-13 23:46:02 · 318 阅读 · 0 评论 -
Java程序设计(Java9版):第5章 方法
jshell> int add(int a,int b){ ...> return a+b; ...> }| 已创建 方法 add(int,int)jshell> add(1,2)$25 ==> 3原创 2018-10-12 23:13:36 · 383 阅读 · 0 评论 -
FileUtil.class.getClassLoader().getResource()返回空值null:解决办法
String path=FileUtil.class.getClassLoader().getResource("resources/table.xml");其中FileUtil是我自定义的工具类。之前的项目中通过FileUtil.class.getClassLoader().getResource()语句可以获取资源文件的路径,不知道为什么今天这个语句一直报错Exception in...原创 2018-04-27 22:21:01 · 19992 阅读 · 5 评论 -
jar包读取资源文件报错:找不到资源文件(No such file or directory)
1、遇到问题(1)Maven项目开发阶段正常运行,Java程序可以读取配置文件public class Main { public static void main(String[] args) throws Exception { Main.readFile("resources/sharepointApp.xml"); } public...原创 2018-04-17 22:52:12 · 17371 阅读 · 2 评论 -
Java下载文件(特殊处理含中文汉字的文件名)
import java.io.BufferedInputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.O...原创 2018-04-10 14:54:46 · 4178 阅读 · 0 评论 -
不靠谱的InetAddress.isReachable,解决办法
项目需求,判定节点是否可达!1、InetAddress.isReachable()方法public static final boolean isNodeReachable(String hostname) { try { InetAddress address = InetAddress.getByName(hostname); ...原创 2018-03-30 08:43:47 · 16286 阅读 · 1 评论 -
Java HashSet源码分析
1、源码分析废话不多说,直接上代码,相关解释请参见注释package java.util;/** * * @param <E> the type of elements maintained by this set * * @see Collection * @see Set * @see TreeSet * @see Ha...原创 2018-01-26 10:37:34 · 466 阅读 · 0 评论 -
Java设计模式之适配器模式
1、适配器模式1.1原理适配器模式中的角色目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。 需要适配的类(Adaptee):需要适配的类或适配者类。 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。现方式主要有两种:类的适配器模式(采用继承实现)对象适配器(采用对象组合方式实现)1.2...原创 2018-02-02 09:37:26 · 378 阅读 · 0 评论 -
Java程序设计(Java9版):第2章 数据类型与运算符(Data types and Operators)
第2章 数据类型与运算符(Data types and Operators)I think everybody in this country should learn how to program a computer because it teaches you how to think. —Steve Jobs学习要求: 掌握Java标识符与注释 掌握Java语言8种基本数据类型原创 2017-11-09 21:34:26 · 1142 阅读 · 0 评论 -
Maven项目:@Override is not allowed when implement interface method
之前在Eclipse下开发Java程序,@Override使用正常。现在切换到Intellij IDEA开发,同样的代码,@Override却显红编译不通过。原创 2017-01-18 13:52:44 · 10213 阅读 · 5 评论 -
基于WebMagic写的一个入门级优快云博客爬虫
参考:http://blog.youkuaiyun.com/qq598535550/article/details/512876301、创建Maven项目pom.xml文件如下<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema原创 2017-10-31 22:37:08 · 1687 阅读 · 3 评论 -
Google sshxcute优化版+二次封装类
1.Google sshxcute优化版源码下载: https://gitee.com/chengyuqiang/sshxcute2.二次封装package cn.hadron.util;import java.util.HashMap;import java.util.Map;import net.neoremind.sshxcute.core.ConnBean;import net.ne原创 2017-09-29 11:06:59 · 1120 阅读 · 0 评论 -
Linux下Tomcat 8 常用命令和优化
shutdown.sh如果使用 shutdown.sh 无法停止 tomcat,可以修改其配置 修改最尾巴这一行[root@webServer bin]# vim shutdown.sh#exec "$PRGDIR"/"$EXECUTABLE" stop "$@"exec "$PRGDIR"/"$EXECUTABLE" stop 10 -forceserver.xml编辑配置文件[root原创 2017-04-01 10:51:55 · 4110 阅读 · 1 评论 -
Linux平台下的Eclipse配置
Linux平台下的Eclipse配置1.启动Eclipse报错A Java Runtime Environment (JRE) or Java Development Kit (JDK)must be available in order to run Eclipse. No Java virtual machine was found after searching the following l原创 2017-02-15 13:12:10 · 647 阅读 · 0 评论 -
Runtime.getRuntime().exec执行scp失败
1.本地scp命令正常[root@hadron ~]# scp scripts/* 192.168.1.157:/optStep1.sh原创 2017-04-13 11:21:34 · 5115 阅读 · 0 评论 -
多线程执行超时处理
多线程执行超时处理:package util;import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Execu原创 2017-01-22 11:03:46 · 3680 阅读 · 0 评论 -
Java程序设计(Java9版):第4章 简单复合类型
第4章 简单复合类型4.1 数组在C语言中,数据类型除了基本数据类型之外,还存在着大量复合数据类型。数组就是一类最简单且非常重要的复合数据类型,数组是具有相同类型变量的顺序存储的集合。几乎所有的程序设计语言都把数组设定为固有的类型,同样Java语言也有数组类型。与C语言一致,Java语言的数组也是通过数组名和下标来表示每个数组单元(也就是一个变量),数组下标从0开始。在Java语言中,创建基本数据类原创 2017-11-14 13:06:44 · 1210 阅读 · 2 评论 -
Java程序设计(Java9版):第3章 流程控制
第3章 流程控制学习要点 掌握三种流程控制 掌握简单的输入输出 了解三种循环设计方法 掌握数组、字符串和枚举类型3.1 面向过程介绍面向过程的程序设计,每个程序完成一个特定的功能,是通过对数据一系列的加工而实现的。面向过程编程包括两部分:数据结构设计和算法设计。 Pascal之父Nicklaus Wirth提出一个著名公式“算法+数据结构=程序”而获得图灵奖。数据结构是程序处理的对象原创 2017-11-14 13:05:36 · 1515 阅读 · 0 评论 -
Java软件工程师面试题汇总(持续更新)
1、 GC(1)jvm中一次完整的GC流程(从ygc到fgc)是怎样的,重点讲讲对象如何晋升到老年代等 答:对象优先在新生代区中分配,若没有足够空间,Minor GC; 大对象(需要大量连续内存空间)直接进入老年态;长期存活的对象进入老年态。如果对象在新生代出生并经过第一次MGC后仍然存活,年龄+1,若年龄超过一定限制(15),则被晋升到老年态。(2)JVM垃圾回收机制,何时触发Mi原创 2017-09-26 22:55:13 · 5944 阅读 · 1 评论 -
Java设计模式之静态代理和动态代理(简单例子)
1、代理模式一个生活中的例子:明星都有一个自己的经纪人,这个经纪人就是他们的代理人。 当我们需要找明星表演时,不能直接找到该明星,只能是找明星的代理人。比如张学友在没有出名之前,我们可以直接找他唱歌,跳舞,拍戏;但是张学友出名之后,他干的第一件事就是找一个经纪人,这个经纪人就是张学友的代理人(代理)。 当我们需要找刘德华表演时,不能直接找到张学友了,只能是找其代理人,具体事务和代理人谈,相...原创 2018-02-01 20:59:55 · 680 阅读 · 0 评论 -
Java Integer源码解读
1、引言public class IntegerDemo { public static void main(String[] args){ Integer i=10; Integer j=10; System.out.println(i==j); System.out.println(i.equals(j));原创 2017-12-18 15:42:32 · 612 阅读 · 0 评论 -
快速排序及其改进算法Java实现
import java.util.Random;public class Main { //输出数组 public static void show(int[] a){ for(int i:a) System.out.print(i+" "); System.out.println(); } //交换元素原创 2018-01-10 22:33:20 · 686 阅读 · 0 评论 -
Java之HashMap源码解读
HashMap一直是数组加链表的数据结构,在数组的某个下标位置,有多次碰撞,则使用链表数据结果存储。在jdk1.8中,引入了红黑二叉查找树的数据结构。刚开始产生碰撞时,碰撞处仍然是链表结构,当链表的长度超过源码设定值8以后,该处的链表将转为红黑二叉树。相比以前,查询效率会高很多,同时代码也变得有一定的复杂度。废话不多说,直接上代码(删除了一些注释),相关解读在代码中文注释中。package java原创 2017-12-17 12:13:19 · 1097 阅读 · 0 评论 -
Eclipse项目红色叹号且没有错误的包
如下图,Eclipse项目显示一个红色叹号,不能运行。直接右击项目–>build path–>Configure build path找到Libraries这一项 对于一般的问题,看看哪个jar包报错删了clean一下就好了。然而,今天遇到的问题是“Java Build Path” 的Libraries下面有错误的包。 单击下面窗口中的MarKers分页(或者通过主菜单window—>show原创 2017-04-01 14:28:47 · 14823 阅读 · 1 评论 -
Java程序设计(Java9版):第1章 Java开发环境配置 (Set up Java development environment)
第1章Java开发环境配置(Set up Java development environment)工欲善其事,必先利其器。 — 《论语·卫灵公》 Write once, run anywhere. — SUN学习要求: 掌握Windows平台下JDK安装与配置 了解Linux平台下JDK安装与配置 掌握Java环境测试 掌握第一个Java程序 掌握编译原创 2017-11-05 11:19:37 · 2815 阅读 · 1 评论 -
Java程序设计(Java9版):第0章 绪论(Introduction)
第0章 绪论(Introduction)千里之行始于足下。 —-《道德经》 Man is still the most extraordinary computer of all. — John F. Kennedy Java is a good language, and JVM is an excellent but under-utilized engin原创 2017-11-05 10:18:43 · 1533 阅读 · 0 评论