![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
海天一树
信息学奥赛研究。
展开
-
Java的两种多线程实现方式
一、创建多线程的两种方式Java中,有两种方式可以创建多线程: 1 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2 通过实现Runnable接口,实例化Thread类在实际应用中,我们经常用到多线程,如车站的售票系统,车站的各个售票口相当于各个线程。当我们做这个系统的时候可能会想到两种方式来实现,继承Thread类或实现Runnable接口,现在看一下原创 2017-08-20 01:41:22 · 740 阅读 · 0 评论 -
Java笔记18:JUnit单元测试
1从http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22junit%22%20AND%20a%3A%22junit%22上下载最新的junit包。 2建立名为JunitTest的Java Project,把下载的junit-4.12.jar添加到工程中 3建立com.abc的package原创 2016-01-27 15:52:35 · 10880 阅读 · 0 评论 -
Maven Web项目配置Mybatis
一、添加Mybatis和数据库相关的包1 pom.xml中添加的包有mybatis,mybatis-spring,druid,mysql-connector-java,commons-io,reflectasm完整的pom.xml内容为<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3原创 2017-04-08 22:04:13 · 12745 阅读 · 0 评论 -
MyEclipse 2014启动两个Tomcat的最快方案
1 查看MyEclipse的Server,发现有两个Tomcat,一个是MyEclipseTomcat 7,另一个是MyEclipse Tomcat(这个其实是Tomcat 6)。 2 这两个Tomcat,物理路径位于Workspace中.metadata下其中.me_tcat代表Tomcat 6,.me_tcat7代表Tomcat 7。 3 随便进其中的一个,比如.m原创 2017-04-26 20:05:33 · 11977 阅读 · 0 评论 -
Java笔记10:Struts2简单Demo
1下载struts-2.3.24.1-all.zip并解压缩,位置任意,比如我的位置是D:\Download\Java\struts-2.3.24.1解压缩D:\Download\Java\struts-2.3.24.1\apps\下的struts2-blank.war 2启动Eclipse,建立一个名为MyStruts的动态Web工程,点击“New R原创 2016-01-15 21:09:06 · 10512 阅读 · 0 评论 -
Java的异常
一、基本概念看java的异常结构图Throwable是所有异常的根,java.lang.ThrowableError是错误,java.lang.ErrorException是异常,java.lang.Exception 二、Exception一般分为Checked异常和Runtime异常,所有RuntimeException类及其子类的实例被称为Runtim原创 2017-04-25 09:46:40 · 10382 阅读 · 0 评论 -
Java程序调用Hadoop接口入门
一、安装Hadoop集群环境参考http://blog.itpub.net/29485627/viewspace-2137702/ 二、程序编写1 整个程序的目录为 2 HdfsUtil.java中的代码为package hadoop.hdfs;import java.io.BufferedReader;import java.io.IOException;原创 2017-04-24 20:29:34 · 14532 阅读 · 1 评论 -
Java程序操作Redis
准备工作1 部署Redis环境,可参考http://blog.itpub.net/29485627/viewspace-2139764/ 2 建立Java Project 一、直接New一个Jedis对象1 添加redis包,可参考http://blog.csdn.net/haishu_zheng/article/details/50512575 2 代码原创 2017-05-25 06:20:03 · 10885 阅读 · 0 评论 -
Java实现网络爬虫入门Demo
需求:抓取一个网页(比如www.lianhehuishang.com)中的url地址,并存到F:\spider_url.txt文件中。程序:package com.zheng;import java.io.BufferedReader;import java.io.FileWriter;import java.io.IOException;import java原创 2017-04-22 11:20:21 · 11632 阅读 · 0 评论 -
Windows下安装ZooKeeper
一、简介ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包原创 2017-04-15 19:05:16 · 11052 阅读 · 0 评论 -
SpringSecurity实现后台管理员登录(二)
需求:login.ftl页面中登录成功后进入index.ftl页面中 一、pom.xml中添加json转换相关的包 dependency> groupId>com.fasterxml.jackson.coregroupId> artifactId>jackson-coreartifactId> version>2.4.4ver原创 2017-04-13 18:00:01 · 10948 阅读 · 0 评论 -
Spring Security实现后台管理员登录(一)
一、实现功能 二、数据表设计为了测试方便,这里创建一个简单的数据表,只含有name和password两个字段。插入一条数据,name为admin,password为e10adc3949ba59abbe56e057f20f883e(这是123456经md5加密后得到的值)。 三、配置文件1 在pom.xml中添加三个相关的包 dependency>原创 2017-04-12 09:45:20 · 15551 阅读 · 0 评论 -
Spring Security入门Demo
一、Spring Security简介SpringSecurity,这是一种基于Spring AOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injection)和面向切面技术。 二、建立工程我原创 2016-06-21 22:28:39 · 16468 阅读 · 6 评论 -
Maven Web项目配置Mybatis出现SqlSessionFactory错误的解决方案
一、错误现象严重: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name'org.mybatis.spring.mapper.MapperScannerConfigurer#0' defined in URL[fil原创 2017-04-08 20:25:50 · 30132 阅读 · 1 评论 -
使用FreeMarker的Web Project例子
1创建一个名为FreemarkerDemo的Web Project 2删除index.jsp,新建index.html,index.html中的内容为:html>head>title>Hello FreeMarker Exampletitle>metahttp-equiv="Content-type"content="text/html;原创 2016-03-17 21:31:14 · 14734 阅读 · 1 评论 -
Maven+SpringMVC+Freemarker入门Demo
1 建立一个名为mavenspringmvcfreemarker的MavenProject,具体步骤见http://blog.csdn.net/haishu_zheng/article/details/51490299 2 文件目录结构如下图所示 3 在pom.xml中添加springmvc和freemarker的依赖包,添加完之后的完整内容为<project xm原创 2016-05-28 10:17:48 · 19379 阅读 · 3 评论 -
Maven+SpringMVC+Mybatis整合入门Demo
1 数据库准备(1)建立一个名为mytest的数据库 (2)创建表CREATE TABLE `t_user` ( `USER_ID` int(11)NOT NULL AUTO_INCREMENT, `USER_NAME` char(30) NOT NULL, `USER_PASSWORD`char(10) NOT NULL, PRIMARY KEY (`USER_ID`), KEY原创 2016-05-29 23:12:23 · 14929 阅读 · 4 评论 -
MyEclipse 2014配置Maven
1 配置maven(1)下载apache-maven-3.3.3和mvnRespo放在某个路径下,我这里是放在D盘根目录下。(2)修改D:\apache-maven-3.3.3\conf\setting.xml中的localRepository,将其值指定为mvnRespo的路径,如下:D:/mvnRespo (3)添加MAVAN相关的环境变量添加MAV原创 2016-05-24 18:32:14 · 24034 阅读 · 0 评论 -
Java程序操作Redis(二)
1 部署Redis环境,可参考http://blog.itpub.net/29485627/viewspace-2139764/ 2 建立Java Project,并添加commons-pool2-2.2,jedis-2.7.3, log4j-1.2.16, log4j-api-2.7.jar, log4j-core-2.7五个包。 3 在sr/com/zheng下建立Re原创 2017-06-02 23:16:24 · 10366 阅读 · 0 评论 -
某人工智能公司Java笔试题
一、选择题 1 下面说法正确的是() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D. 一个class只能定义一个constructor 答案:C 解析:这里可能会有误区,其实普通的类方法是可以和类名同名的,和构造方法唯一的区分就是,构造方法没有原创 2017-08-20 01:49:46 · 1997 阅读 · 0 评论 -
某游戏彩票外企Java面试题
第一轮笔试 笔试形式:paper test 题目难易程度:中等 笔试时间:1个小时 笔试语言:题目和答题全部用英文1 What’s difference between a “static synchronized” method and “synchronized” method? 答: synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synch原创 2017-08-19 21:42:36 · 986 阅读 · 0 评论 -
Java面试题4:异常
4 Java有哪几种异常(1)基本概念java的异常结构图Throwable是所有异常的根,java.lang.ThrowableError是错误,java.lang.ErrorException是异常,java.lang.Exception(2)Exception一般分为Checked异常和Runtime异常,所有RuntimeException类及其子类的实例被称为Runtime异常,不属于该范原创 2017-08-19 19:25:42 · 354 阅读 · 0 评论 -
Java面试题3:try...catch...finally
3 下面代码有什么问题? try { return 0; } catch (Exception e){ return 1; } finally { return 2; } return 3;答: 最后的return 3; 会导致编译报错:Unreac原创 2017-08-19 19:08:21 · 468 阅读 · 0 评论 -
Java面试题1:synchronized方法调用
1 synchronized同步方法调用另一个synchronized同步方法public synchronized void methodA(int a, int b) {};public synchronized void methodB(int a){ methodA(a, 0);}答: 要明白两个问题,①锁的对象是谁;②谁持有了锁。 有三种情况: (1)假设方法A和B是在同原创 2017-08-19 18:30:01 · 2282 阅读 · 0 评论 -
Java面试题2:多线程与synchronized
2 有一个静态变量num,初始值为0。现在开了1000个线程,每个线程内循环1000次,每循环对num自加1,问最后的值是大于、等于还是小于1000000? 答: (1)小于1000000,因为有1000个线程,不同的线程有可能同时访问num,导致自加的次数变少。import java.util.concurrent.TimeUnit;public class Test implements R原创 2017-08-19 18:36:04 · 318 阅读 · 0 评论 -
Java中的四种内部类
内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。 (注意,这里的外部类就是最常见的普通类,只是为了对应于内部类,才说成是“内部类”) 内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。所以内部类的成员变量/方法名可以和外原创 2017-08-19 12:39:00 · 304 阅读 · 0 评论 -
Java中的匿名内部类
(一)定义顾名思义,匿名内部类是没有名字的内部类。 因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写。 使用匿名内部类有个前提条件:必须继承一个父类或实现一个接口。(二)例子例1:不使用匿名内部类来实现抽象方法abstract class Person { public abstract void eat();}class Child extends Person {原创 2017-08-18 21:19:12 · 203 阅读 · 0 评论 -
URLRewrite地址重定向的实现
UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址。其优点有:(1)提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多。(2)美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的原创 2016-06-03 17:00:52 · 15082 阅读 · 3 评论 -
hashCode()与equals()的关联
一、Hash表数据结构介绍请参考 哈希表详解二、equals的内部实现equals()的定义位于Object.class中: public boolean equals(Object obj) { return (this == obj);}从这里可以看出,如果不重写的话,equals默认就是断定两个对象的内存地址是否相同。如果内存地址相同,必然是同一个对象;如果内存地址不相原创 2017-08-17 20:10:23 · 261 阅读 · 0 评论 -
CentOS 7安装Tomcat 7
一、安装Java 71 把下载好的jdk-7u79-linux-x64.tar.gz上传到服务器的/usr/local/下 2 解压缩并重命名# cd /usr/local/# tar -zxvf jdk-7u79-linux-x64.tar.gz# mv jdk1.7.0_79/ jdk7/ 3 将java相关的变量添加到profile文件中# vi /etc原创 2017-08-16 13:54:15 · 309 阅读 · 0 评论 -
MyEclipse 2014取消xml, js, JSON等验证
问题:从SVN上checkout一个项目后,发现有很多验证错误,主要是三大类:js, xml和JSON解决方案:下面列出了三种解决方案,推荐使用方法一。方法一:点击MyEclipse顶部的Window-->Preferences-->MyEclipse-->Validation把Build那一列中的JavaScriptvalidator for JS f原创 2017-06-15 15:16:26 · 14363 阅读 · 0 评论 -
MyEclipse 2014在线安装SVN插件详细步骤
1 打开MyEclipse 2014,点击顶部的菜单中的Help按纽-->Install from site...2 点击右上角的Add按纽,在Name后面输入svn,在Location后输入http://subclipse.tigris.org/update_1.10.x点击OK按钮 3 将Subclipse和SVNKit勾选起来,其他保持不变,N原创 2017-06-15 12:23:39 · 11077 阅读 · 0 评论 -
MyEclipse 2014的安装和破解
1 新建一个目录,比如E:\MyEclipse 2 将MyEclipse 2014安装到E:\MyEclipse中,关键步骤如下面几个图所示: 最后这个界面,可以把Launch MyEclipse Professional 2014前面默认的勾去掉,等破解完再运行MyEclipse。当然不去掉直接运行也可以,但必须在破解之后重启MyEclipse。原创 2017-06-14 16:31:55 · 11772 阅读 · 0 评论 -
Java入门第二个程序:求两个整数的和
(一)代码:import java.io.*;class test { public static void main (String[] args) throws java.lang.Exception { int num1 = 1; int num2 = 2; int sum = num1 + num2; System.out.println("The sum原创 2017-06-20 13:09:29 · 17814 阅读 · 0 评论 -
Java入门第一个程序:Hello World!
代码:import java.io.*;class test { public static void main (String[] args) throws java.lang.Exception { System.out.println("Hello World!"); }}运行结果:Hello World! 分析:(1) 这里test是一个类,原创 2017-06-20 00:40:17 · 11906 阅读 · 0 评论 -
Spring MVC入门Demo
1 建立一个名为springmvcdemo的MavenProject,具体步骤见http://blog.csdn.net/haishu_zheng/article/details/51490299 2 文件目录结构如下图所示3 在pom.xml中添加 dependency> groupId>org.springframe原创 2016-05-25 22:13:52 · 20089 阅读 · 1 评论 -
使用MyEclipse 2014构建Maven项目的两种方法
方法一:1 File-->New-->Project-->MavenProject,Next2 选择location位置,Next3 输入webapp进行过滤,选择maven-archetype-webapp,Next4 填入Group Id和Artifact Id,package会自动生成。Finish5 index.j原创 2016-05-24 15:08:10 · 23575 阅读 · 1 评论 -
Java笔记7:最简单的网络请求Demo
一、服务器端1新建一个工程,建立一个名为MyRequest的工程。 2 FileàProject StructureàModulesà点击最右侧的“+”àLibraryàJava找到Tomcat中的lib目录下的servlet-api.jar,添加进来3建立LoginServlet类,内容如下i原创 2016-01-14 20:20:20 · 11975 阅读 · 0 评论 -
Java笔记6:多态
一、多态的分类对象的多态性:动物 x = new猫();函数的多态性:函数重载、重写 二、多态的体现父类的引用指向了自己的子类对象父类的引用也可以接收自己的对象 三、多态的前提必须是类与类之间只有关系,要么继承或实现通常还有一个前提,存在覆盖四、多态的好处多态的出现大大的提高了程序的扩展性五、多态的原创 2016-01-14 19:52:20 · 10482 阅读 · 0 评论 -
Java笔记5:单例模式
一、应用杨景在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态原创 2015-12-15 11:39:58 · 10956 阅读 · 0 评论