Java
文章平均质量分 87
transformer_WSZ
You Only Look Once!
展开
-
Java中日期的格式化输出
有时候编程要求格式化显示日期时间,掌握的不够熟练,老是遗忘,在此记录一下。由于Date类在设计上有缺陷,日期时间处理用得更多的是Calendar及其子类。Calendar是抽象类,不能直接用new关键字来创建对象,但它提供了一个静态工厂方法来得到其子类对象,Calendar rightNow = Calendar.getInstance( ). GregorianCalendar类是Calend原创 2017-04-27 22:45:52 · 440 阅读 · 0 评论 -
Java并发控制:ReentrantLock Condition的使用
生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区。其中一个是生产者,用于将消息放入缓冲区;另外一个是消费者,用于从缓冲区中取出消息。 问题出现在当缓冲区已经满了,而此时生产者还想向其中放入一个新的数据项的情形,其解决方法是让生产者此时进行休眠,等待消费者从缓冲区中取走了一个或者多个数据后再去...原创 2018-05-07 00:21:47 · 316 阅读 · 0 评论 -
Eclipse导出的jar包无法显示图片?
在用java开发桌面应用程序时(虽然现在很少有人用),如果将项目导出成jar包而项目中包含图片等资源时,可能会无法正确加载这些资源。这主要是因为jar包是一个单独的文件而非文件夹,绝对不可能通过 “file:/e:/…/ResourceJar.jar/resource/123.jpg” 这种形式的文件URL来定位 123.jpg 。所以即使是相对路径,也无法定位到jar文件内的图片资源。解决方法有...原创 2018-04-30 23:17:35 · 5320 阅读 · 0 评论 -
Tomcat 401 Unauthorized
今天首次在Mac上配置Tomcat,遇到了一个小坑,在此总结一下。当开启Tomcat服务器,在浏览器输入 localhost:8080 ,表示你的Tomcat已经安装成功。如下图所示:但是当你点击 Server Status、 Manager App 、Host Manager 就会出现如下的信息:因此我们可以根据其提示信息来配置 tomcat-users.xml :<role rolename="原创 2017-08-29 23:51:41 · 4492 阅读 · 3 评论 -
使用IDEA创建JavaWeb项目
由于看的视频教程比较老,且开发工具为Eclipse,本人已习惯使用IDEA,在此记录一下创建JavaWeb项目过程。1、创建一个项目左侧选择 Java Enterprise,右侧选择 Web Application这里我输入的项目名字为 FirstJavaWeb ,点击 next 后生成如下的项目结构:项目配置在 web 目录下的 WEB-INF 目录下新建两个目录: classes 和 libF转载 2017-08-31 00:26:24 · 7688 阅读 · 0 评论 -
间隔删数
题目如下 有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。本人对Java比较熟悉,第一想到的就是使用 LinkedList 类。接下来是暴力破解原创 2017-08-28 00:52:30 · 599 阅读 · 0 评论 -
求给定字符串中最长回文序列
对字符串来说,将其逆序后仍能跟自己相等即为回文。例如 “asdsa”.代码如下:import java.util.HashSet;import java.util.Iterator;import java.util.Set;import java.util.Stack;public class Test { //判断该字符串是否为回文序列 public static boole原创 2017-08-22 20:51:41 · 615 阅读 · 0 评论 -
求给定两字符串的最长相同子串
import java.util.HashSet;import java.util.Iterator;import java.util.Set;import java.util.Stack;public class Test { //调整栈 //如果栈为空,则将s压入栈 //由于栈中存放的是最长相同子串(可能有多个长度相同的子串,而它们的内容也可能相同,例如"asd","原创 2017-08-23 15:03:16 · 1074 阅读 · 0 评论 -
冒泡排序
基本思想:对于一个已经排好序的数组,它的任意两个相邻元素,都应该满足arr[i-1]<=arr[i]。冒泡排序暴力地实现了这一目标:不断扫描相邻元素,看它们是否违章。一旦违章,立即纠正。在冒泡排序时,程序从左往右(也可从右往左)遍历数组,比较相邻的两个元素。如果顺序错误,那么交换两个数组元素的位置。如果顺序正确,则不交换。经过一次遍历,我们可以保证最大的元素在最右边。 遍历结束后,继续重复扫描,总原创 2017-08-03 13:18:20 · 265 阅读 · 0 评论 -
Mac上配置Java环境变量
之前看过许多在Mac上配置Java环境变量的教程,但是这些教程比较杂乱,且说明不够详细。没有像在Windows上那样标准统一。 由于接触Mac时间不长,非常不习惯在命令行里面配,没有Windows图形化界面那样形象生动。有些文章是指导你在/etc/profile配置,有些文章是指导你在~/.bash_profile配置。看了之后脑子一片混乱,甚至急躁(Mac配置Java怎么这么麻烦!)。 今天算原创 2017-06-02 22:18:01 · 2734 阅读 · 0 评论 -
Java中关于static语句块的理解
static块会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法。实例一public class A{ String name; public A(String name){ this.name = name; } //静态块 static{ System.out.println("static语句块执行原创 2017-04-27 17:27:30 · 480 阅读 · 0 评论 -
用Java实现MD5消息摘要
首先,必须要强调的一点,MD5不是加密算法,而是消息摘要算法,具有不可逆性。字符串通过MD5处理后会生成128位的二进制串。我们通常会将其转化为16进制串,用于登录密码验证。加密算法与消息摘要算法区别:加密算法具有相应地解密算法,通过加密算法对信息进行加密后,采用解密算法能够获取到原始数据。采用摘要算法得到的数据是不完整的,无法反向获取到原始数据。下面直接贴代码:import java.sec原创 2017-04-27 00:49:54 · 875 阅读 · 0 评论 -
用Java实现大文件的分割与合并
我们平时在发送文件或上传文件的时候会遇到文件大小的限制。如果文件过大,那么我们就可以将其分割,由接收方来将这些文件合并。其本质不过就是文件的读写操作。文件的分割public static void Split(String SrcFilePath,int SingleGoalFileSize,String GoalFileDirectory){//SingleGoalFileSize单位:M原创 2017-05-07 13:49:40 · 1402 阅读 · 0 评论 -
用Java实现计算器
在学习《数据结构》这门课的时候,老是会想到模拟计算器的运算。虽说实验里面也有设计逆波兰计算器的题目,但它只考察了栈和队列的操作思想,没有考虑到运算符的优先级以及复杂组合情况(比如多层括号),因此其实用性并不大。 今天试着写了一下,看似很简单,还是花费了一段时间的。处理纯符号(+-)字符串(1)这是最简单的情况。 1. 首先+-的运算等级最低,而且没有括号的限制。 2. 其次我们只需要把相应的数原创 2017-04-21 23:30:35 · 1249 阅读 · 0 评论 -
删除字符串中的某指定单词(不区分大小写)
public class Test { public static String DeleteWord(String s){ String regex = "[T,t][H,h][E,e]"; return s.replaceAll(regex,""); } public static void main(String args[]){原创 2017-07-07 14:00:44 · 2656 阅读 · 0 评论 -
键盘监听事件
public class A{ public static void main(String args[]){ System.out.println("Hello World!"); }}原创 2017-06-19 11:43:32 · 300 阅读 · 0 评论 -
为什么HashMap是线程不安全的?
假设HashMap初始化大小为4,负载因子是1。已经先后插入c、b、a三个节点,当插入第四个节点时,HashMap就会扩容,并且对之前的三个节点rehash。以下是节点插入(头插法:每次插入链表的头部)的逻辑:void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length; ...转载 2018-06-02 20:09:12 · 506 阅读 · 0 评论