
java
文章平均质量分 77
乐百川
这个作者很懒,什么都没留下…
展开
-
Jetbrains第三组谜题解答
好了,最后来介绍一下Jetbrains第三组谜题的解决办法吧。线索一:推特代码先看看这次的推特代码,和前两组不太一样,这次是真的无意义随机字符串了。不过之前一段时间我正好研究了某软件的配置,它的配置分享方式就是用base64方式加密,这次我看到这个貌似也有点像,于是就把代码复制到Python中试了一下,还真让我蒙对了。fun twitterCode3() { val sss = "...原创 2020-03-15 20:39:18 · 1410 阅读 · 0 评论 -
Jetbrains第二组谜题解答
今年是Jetbrains公司创立20周年,怪不得Jetbrains会推出福利活动,顺带还有第二个解谜活动。当然我消息知道的晚了, 估计活动已经结束了,但是这个解谜活动还是挺有趣的,所以我还是尝试一下解解看。线索一:推特代码首先看看推特,果不其然又是一串看不懂的字符,但是这次明显比较有规律,从头到尾观察了一遍,这不就是倒序字符串嘛。直接倒序输出一下即可。fun twitterCode2()...原创 2020-03-15 17:41:41 · 1338 阅读 · 0 评论 -
解决谜题获取3个月Jetbrains全家桶正版使用权
最近,Jetbrains没事搞事,搞了一个解谜活动,成功解答出谜题的同学可以获得三个月Jetbrains全家桶的正版使用权。就算没有这个奖励,光是这个解谜过程就非常有意思,所以我就来给大家介绍一下。当然其实我也是看别人的文章介绍之后才发现有这个活动的,光凭我自己肯定是解不出来的,所以在此给出原作者的博客链接,这是一位外国小哥。线索一:推特神秘代码早在3月9日,Jetbrains推特上就发了一条...原创 2020-03-14 22:50:05 · 1418 阅读 · 0 评论 -
Gradle和Maven性能对比
Gradle目前已经出到6.0版本了,想当初我第一次了解到Gradle的时候,它仅有2.0版本,这些年来一直不断迭代和优化,现在可以说是非常成熟好用的一款工具。如果大家还在使用Maven,我建议大家学习一下Gradle,现在Gradle的性能可以说是完全超越了Maven,各种平台也早已支持Gradle。可以说,除非是兼容老项目,否则,完全可以用Gradle来替代Maven。Gradle显然也对自...原创 2019-11-24 04:33:08 · 5532 阅读 · 1 评论 -
maven学习笔记 maven的使用
新建maven项目使用mvn archetype:generate命令新建一个maven项目。maven会自动下载必要的插件,还会下载一个所有项目模板的分类文件。这个文件有好几兆的大小,因此可能会持续比较长的时间。下载完毕之后,就会列出所有项目模板分类,使用序号就可以选择了。然后还会要求输入groupId和artifactId,并选择项目版本。groupId是公司或组织的标识符,artifactId原创 2016-03-22 18:47:55 · 575 阅读 · 0 评论 -
maven jetty 插件的使用
jetty插件的安装首先打开项目的pom.xml文件,然后找到build节点,在其中添加plugins节点,然后再添加如下的插件:<plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.3.7.v20160115</version></plu原创 2016-03-22 21:09:56 · 14847 阅读 · 3 评论 -
Gradle学习笔记 Gradle介绍和安装
Gradle介绍Gradle是一个现代的项目构建工具。如果你使用过Maven的话,就会明白项目构建工具的优点。但是Maven有一些缺点。由于Maven使用的是xml语言描述项目,虽然描述非常清晰,但是如果在pom.xml中配置一些插件的话,就会出现一个非常冗长的pom.xml,严重影响可读性以及pom.xml的维护性。Gradle使用的是DSL语言,所以描述非常简洁。比如,我们要在项目中添加Hibe原创 2017-01-03 21:33:25 · 790 阅读 · 0 评论 -
Gradle学习笔记 Gradle命令行
执行多个任务安装好Gradle之后,就可以使用Gradle命令行了。首先我们先新建一个文件夹gradle-learn,然后在其中新建一个build.gradle,这是Gradle的项目构建文件。task compile { doLast { println 'compiling source' }}task compileTest(dependsOn: compil原创 2017-01-03 23:36:58 · 10511 阅读 · 0 评论 -
Gradle学习笔记 使用Gradle Wrapper
Gradle可以在没有安装Gradle的情况下使用,这时候就需要Gradle Wrapper了。Gradle Wrapper其实就是一个脚本文件,它会在没有安装Gradle的情况下为我们下载Gradle,之后我们就可以使用gradlew命令,像使用gradle一样来使用Gradle了。但是对于我们天朝用户来说,不管是Gradle还是Gradle Wrapper,都需要网络代理才能以较高的速度下载。创原创 2017-01-04 00:00:51 · 21263 阅读 · 4 评论 -
Windows平台Java开发环境的搭建
下载安装JDK首先到oracle的jdk下载页面 下载jdk。jdk建议使用最新的jdk8,根据系统版本选择32位或者64位的。下载完成之后点击安装,安装位置随意,但是必须记住,一会配置环境变量的时候会用到。配置环境变量安装完成之后就可以开始配置环境变量了。配置环境变量需要新建两个变量,并在path中增加一条路径。下面具体来说。首先点击计算机->属性->高级系统设置->环境变量,打开环境变量对话框。原创 2015-11-11 00:59:20 · 1686 阅读 · 0 评论 -
Gradle学习笔记 依赖管理
定义依赖下面我们在build.gradle中添加如下一段。apply属于插件的部分,我们到后面再说。现在先来看一下Gradle中的依赖管理,有两个部分,repositories和dependencies。下面来逐一说明。apply plugin: 'java'repositories { mavenCentral()}dependencies { compile group: 'o原创 2017-01-04 20:41:48 · 734 阅读 · 0 评论 -
maven学习笔记 maven的安装和配置
maven是什么maven是一个Java项目管理工具。maven提供了大量命令行工具,可以方便的管理java项目建立、开发、测试、打包、生成、部署等各个生命周期的操作,极大的方便开发者。同时,maven还提供了统一的项目结构,简化了项目的处理流程。maven是一个Java项目的依赖管理工具。当项目中使用了多个第三方包的时候,传统的手工导入方式就不能胜任了。各种第三方包的依赖、冲突,都会导致项目编译错原创 2016-03-22 16:47:24 · 2963 阅读 · 0 评论 -
Gradle学习笔记 使用插件
前面说了不少内容,但是我看了一下Gradle官方文档内容太多太详细。其中大部分内容其实我们不需要知道。一般情况下我们应用一部分插件就可以了。自己编写Gradle任务的情况并不多见。Java插件在build.gradle文件中添加以下一句,即可启用Java插件。Java插件用于构建普通的Java项目。apply plugin: 'java'Java项目应该包括以下文件夹: 文件夹 含义 sr原创 2017-01-05 00:28:28 · 2112 阅读 · 0 评论 -
Hibernate学习笔记 开始学习
Hibernate简介Hibernate是一个优秀的对象关系映射(ORM)框架。如果你有使用纯JDBC写过一个类似博客之类的小程序的话,就知道编写JDBC语句以及转化结果集为Java对象是一件非常繁复的事情。利用Hibernate这样的ORM框架,事情就非常简单了。Hibernate需求Hibernate官网如下:http://hibernate.org/orm/ 。我们可以看到除了ORM框架之外,原创 2017-01-03 21:02:03 · 380 阅读 · 0 评论 -
Java基本数据类型
Java中有以下几种基本数据类型,这些类型都是值类型。 类型 值范围 大小 范围 boolean true或false 1位 char Unicode字符 16位 ‘\u0000’~’\uFFFF’ byte 有符号整数 8位 -128~127 short 有符号整数 16位 -32768~32767 int 有原创 2016-12-28 22:06:32 · 408 阅读 · 0 评论 -
Hibernate学习笔记 搭建开发环境
前面已经介绍了Hibernate的一点知识,现在我们来一步一步开发Hibernate程序来学习。在这里我使用IDEA作为开发工具,Gradle作为项目构建工具。当然在实际中不一定必须使用这两个工具,我们可以选择自己习惯使用的工具。只要正确的添加了Hibernate相关类以及数据库驱动,我们就能正确的运行Hibernate程序了。新建项目使用IDEA新建一个Gradle项目,新建之后,在build.g原创 2017-01-06 01:09:10 · 646 阅读 · 0 评论 -
Gradle项目中文乱码的解决办法
最近一直在学习使用Gradle项目构建工具,但是一直遇到一个问题就是中文乱码,比如将易天乱码成了鏄撳ぉ,经过研究我发现这正是将UTF-8编码识别为GBK编码出现的现象。经过一番查阅,解决办法就是在build.gradle文件中添加如下一段,rhGradle将文件识别为UTF-8编码。当然,这需要你的项目文件本来就是UTF-8编码的,如果默认是GBK编码,就不需要更改。tasks.withType(J原创 2017-01-07 16:29:20 · 47663 阅读 · 14 评论 -
Hibernate学习笔记 单表映射
建立实体类配置好SessionFactory之后,我们就可以开始建立一对一的单表映射了。首先需要建立一个实体类,这里Getter、Setter、toString、equals等方法省略了。我们可以方便的使用IDEA或者Eclipse的生成代码功能轻松生成。package yitian.data;import java.util.Date;public class User { private原创 2017-01-07 23:48:04 · 500 阅读 · 0 评论 -
Hibernate学习笔记 多表映射
前面说了Hibernate的单表映射,由于是实体类和数据表之间一对一的映射,所以比较简单。现在就来说说多表映射,这需要涉及到多个实体类和数据表之间的关系。因此稍微复杂一点。建立实体类我建立了两个实体类,一个作者类,一个文章类,其他方法都忽略了,就留下了注解。作者类如下:@Entitypublic class Author { @Id @GeneratedValue(strategy原创 2017-01-08 22:13:41 · 915 阅读 · 0 评论 -
Spring学习笔记 搭建环境
现在开始我们就要开始学习Spring框架了。首先要做的事情就是搭建Spring环境,为了让我们关注于Spring的功能,我在这里使用Spring Initializer,它会自动为我们创建一个包含了Spring依赖的项目,让我们能直接快速开始。打开IDEA或者STS,点击新项目,然后选择Spring Initializer,或者登陆Spring Initializer网站在线生成也可以。如果使用在线原创 2017-01-14 19:46:11 · 453 阅读 · 0 评论 -
Hibernate学习笔记 查询简介
创建实体类在介绍Hibernate查询语言之前,首先我们来建立一下数据库。这里直接使用了MySQL自带的样例数据库world。如果你没有安装MySQL那么需要安装一下,并且在安装的时候选择安装样例数据库。安装完成之后,应该能在MySQL中看到一个名为world的数据库,其中有三个表,country、city以及countrylanguage表。然后我们来建立这三个表对应的实体类。需要注意,由于这一次原创 2017-01-10 16:24:09 · 550 阅读 · 2 评论 -
Gradle 快速入门
大家应该都经历过为了学习Hibernate、Spring这样的框架,需要引用大量Jar包而忙得焦头烂额的经历吧。在Java中管理Jar包确实是一件麻烦事情。而且有时候就算你电脑上一个项目配置的好好的,换一台电脑马上就不行了。因此就产生了项目构建工具这么一个玩意,它能大大简化我们构建项目所需的成本。Maven就是这么一个项目构建工具,它的配置文件是一个XML文件。这样做的优点就是配置易于理解,因为是X原创 2017-02-06 02:55:25 · 1111 阅读 · 0 评论 -
Hibernate学习笔记 Hibernate Validator简介
Hibernate项目中不仅有ORM一个框架,这里介绍的是它的另一个框架Validator,用来验证实体类是否满足需求。Validator实现了Java的一项标准Bean Validation。如果使用Maven,就需要在pom.xml中添加如下一段,Hibernate需要Java EL表达式,因此需要添加EL的依赖项。<dependency> <groupId>org.hibernate</原创 2017-01-10 22:21:04 · 10397 阅读 · 0 评论 -
Spring Web MVC框架(一) 搭建环境
学过Java的都知道SSH,也就是Struts、Spring和Hibernate。其中Struts是一个Web MVC框架,Hibernate是ORM框架,Spring是一组框架。不过由于Struts设计较早,其中有些设计已经过时了,框架漏洞也比较多。而且Struts的编写也不方便(例如控制器必须继承Controller类),所以现在Struts用的比较少了。现在更加常用的Web MVC框架是Spr原创 2017-02-04 00:37:12 · 6902 阅读 · 0 评论 -
JUnit4 简介
JUnit4是一个易学易用的Java单元测试框架,使用非常广泛。现阶段的最新版本号是4.12,JUnit5目前正在测试中,所以这里还是以JUnit4为准。引入JUnit现在主流的IDE比如IDEA或者Eclipse都提供了对JUnit4的支持,可以非常方便的使用JUnit4。当你在代码中添加了@Test注解,然后使用IDE的自动补全功能时,一般情况下IDE会弹出对话框询问你是否将JUnit4库添加到原创 2017-01-15 23:30:51 · 8522 阅读 · 3 评论 -
Hibernate学习笔记 JPA简介
Hibernate除了是一个ORM框架之外,同时还实现了Java EE的一项标准JPA。我们在前面已经看到了Hibernate可以在注解方面直接使用JPA。现在我们来看看如何在Hibernate中使用JPA。关于JPA注解前面已经做了一定介绍,所以这里只用一个最简单的实体类。@Entitypublic class User { @Id @GeneratedValue(strateg原创 2017-01-11 15:58:15 · 508 阅读 · 0 评论 -
Spring Web MVC框架(四) 视图和视图解析
视图解析器在Spring中视图相关的两个接口是ViewResolver和View两个接口,ViewResolver用于视图名称和实际视图之间的映射,View接口用于准备和传递数据到实际的视图。下面是一些Spring支持的一些ViewResolver。对于其他视图技术(例如Thymeleaf)可能自己实现视图解析器以便和Spring集成。 视图解析器 功能 AbstractCachingVi原创 2017-02-08 00:08:22 · 3287 阅读 · 0 评论 -
Spring Web MVC框架(十二) 使用Thymeleaf
Thymeleaf简介前面的例子我们使用的视图技术主要是JSP。JSP的优点是它是Java EE容器的一部分,几乎所有Java EE服务器都支持JSP。缺点就是它在视图表现方面的功能很少,假如我们想迭代一个数组之类的,只能使用<% %>来包括Java语句进行。虽然有标准标签库(JSTL)的补足,但是使用仍然不太方便。另外JSP只能在Java EE容器中使用,如果我们希望渲染电子邮件之类的,JSP就无原创 2017-02-16 16:48:55 · 17670 阅读 · 2 评论 -
Lombok简介
最近发现了一个非常好用的库,叫做Lombok,它可以帮助我们简化一些Java代码的编写。我试用了一下感觉非常好用,所以来介绍一下。下面对Lombok的简单使用方法做一下总结:val 这不是一个注解,用于局部变量声明,减少重复输入。@NotNull 作用在方法参数上的注解,用于自动生成空值参数检查。@Cleanup 作用在局部变量上,在作用域结束时会自动调用close方法释放资源。@Gette原创 2017-01-12 21:16:42 · 4445 阅读 · 0 评论 -
Log4j2 简单使用
日志是一个系统经常用到的功能,我们可以在调试的时候依靠日志查看输出,在程序运行的时候通过查看日志判断程序运行状态。在Java世界中,有一个非常著名的日志类库——Log4j。现在Log4j也有了新版本,就是Log4j2。新版本的好处我就不多说了。让让我们来开始使用吧。引入Log4j2要使用Log4j2,第一步就是先导入它的jar包。如果是普通项目的话,到log4j2官网下载jar包,然后将log4j-原创 2017-01-13 00:17:47 · 3865 阅读 · 0 评论 -
Spring Web MVC和Hibernate的集成
网上看到很多关于Spring与Hibernate的集成的文章,奈何由于那些文章写作时间较早,很多都是Spring 3 和Hibernate 4等较旧的版本。所以我在这里使用更新的版本来说明一下。添加项目依赖首先我们需要一个Java Web项目,最好使用Maven或Gradle构建工具,方便我们解决软件依赖。我在这里使用Gradle构建工具,构建脚本如下。我们只要引入spring-webmvc和spr原创 2017-02-08 18:29:05 · 472 阅读 · 0 评论 -
Spring Web MVC框架(五) 文件上传
Spring同样支持文件上传功能,不过该功能默认未开启,因为可能有些开发者可能希望自己处理文件上传过程。Spring的文件上传功能在org.springframework.web.multipart包下,有两个MultipartResolver实现用来支持文件上传功能,一个是基于Commons FileUpload ,另一个基于Servlet 3.0 multipart请求解析功能。这两个Multi原创 2017-02-08 22:22:09 · 567 阅读 · 1 评论 -
Spring Web MVC框架(六) 异常处理
Spring Web MVC对异常处理有着完善的支持,我们可以捕获控制器中抛出的任何异常,然后按照异常类型将异常信息映射到某个视图文件,向用户显示对应的信息。@ExceptionHandler最简单的办法就是使用@ExceptionHandler注解。它可以定义到一个控制器中,处理该控制器抛出的异常。@ExceptionHandler注解接受一个Class,指定捕获哪个异常。如果不指定这个值,则捕获原创 2017-02-08 23:40:39 · 766 阅读 · 1 评论 -
Spring Web MVC框架(七) 基于代码的容器初始化
前面我们的Spring项目都是使用XML文件配置的,包括web.xml和Spring配置文件。Spring还支持基于代码的配置,这样我们的Spring程序就可以脱离web.xml文件,全部使用代码来配置。WebApplicationInitializer接口第一个接口就是org.springframework.web.WebApplicationInitializer,我们实现该接口,然后在onSt原创 2017-02-09 17:57:15 · 577 阅读 · 1 评论 -
Kotlin的一点学习资源
本来想写一点Kotlin的文章的,后来看了一下它的中文文档,质量很不错。我再写就纯属浪费时间了。所以这里干脆整理一点Kotlin的学习资源吧。文档类Kotlin官方网站Kotlin官方文档Kotlin中文网站Kotlin中文文档Kotlin中文文档PDF版代码类Kotlin在线IDEKotlin Koans,一些Kotlin练习,帮助你学习和熟悉Kotlin语法。Edu Kotlin IDEA插件,原创 2017-02-27 23:12:13 · 3308 阅读 · 0 评论 -
JSP分页显示数据
最近在做一个小程序,用到了JSP的分页。虽然只是最简单的分页,但是还是花了我不少时间。这看似简单的功能,实现起来还是稍微有点麻烦。实现分页功能,需要知道数据的总个数,每页应该有多少条数据,以及当前页码。假如总共有300条数据,每页20条,那么应该就有15页;假设有301条数据,每页20条,这时候就需要16页。因此,总页数可以这样计算:总页数=数据总数%每页条数==0?数据总数/每页条数:数据总数/每原创 2017-01-20 16:35:09 · 72944 阅读 · 12 评论 -
Spring 对象XML映射
OXM简介我们都知道对象关系映射(ORM),用来将Java对象和关系型数据库的数据进行映射。Spring也提供了一套类似的映射机制,用来将Java对象和XML文件进行映射。这就是Spring的对象XML映射功能,有时候也成为XML的序列化和反序列化。这套功能的最基本的两个接口就是org.springframework.oxm.Marshaller和org.springframework.oxm.Un原创 2017-02-10 21:17:25 · 5566 阅读 · 1 评论 -
Spring Web MVC框架(八) 配置Spring Web MVC
这一篇文章对应于Spring参考文档 Configuring Spring MVC,讲的是Spring Web MVC各部分的配置方法,包括Java代码配置和XML文件配置以及MVC命名空间的使用方法。启用MVC Java配置和XML命名空间默认配置要启用MVC Java配置(@Controller等各种注解)和XML命名空间,如果使用的是Java配置,在配置类上再添加@EnableWebMvc注解原创 2017-02-10 00:26:41 · 4692 阅读 · 1 评论 -
Spring Web MVC框架(二) 控制器
在前面我们搭建了基本的Spring Web MVC环境,并配置了一个控制器。下面我们来详细学习一下控制器。控制器的主要作用就是处理特定URL发过来的HTTP请求,然后进行业务逻辑处理,将结果返回给某个特定的视图。处理请求我们在前面定义了如下一个控制器。在Spring中定义控制器非常简单,新建一个类然后应用@Controller注解即可,当然一般习惯上将控制器类也命名为XXController。每个控原创 2017-02-06 19:24:20 · 517 阅读 · 0 评论 -
MyBatis快速入门(一) 搭建环境和单表映射
MyBatis简介一说起对象关系映射框架,大家第一时间想到的肯定是Hibernate。Hibernate作为一个著名的框架,功能十分强大。我们只需要配置好实体类和数据表之间的关系,Hibernate就会自动帮我们完成生成并执行SQL语句,映射结果集这样的工作。但是也正是由于Hibernate如此强大的功能,导致了它的缺点:一是非常笨重,启动Hibernate的SessionFactory非常耗时,开原创 2017-02-20 22:36:24 · 486 阅读 · 0 评论