我的Java开发学习之旅
文章平均质量分 93
本人对Java的开发学习的个人笔记和心得体会,希望对读此专栏文章的读者有所帮助。
字节卷动
字节卷动 | CSDN博客专家
博客知识包括:Android、ASM、OpenGL、C++、Java、Python、Shell、Jenkins、Gitlab、Git、SVN等相关进阶知识。
展开
-
CountDownLatch详解以及用法示例
中count down是倒数的意思,latch则是门闩的含义。整体含义可以理解为。的作用也是如此,在构造:的时候需要传入一个整数count,在这个整数“倒数”到0之前,主线程需要等待在门口,而这个“倒数”过程则是由各个执行线程驱动的,每个线程执行完一个任务“倒数”一次。总结来说,的作用就是等待其他的线程都执行完任务,必要时可以对各个任务的执行结果进行汇总,然后主线程才继续往下执行。原创 2023-05-31 20:39:46 · 9896 阅读 · 0 评论 -
【我的Java开发学习之旅】Windows系统下如何运行.jar文件?
一、需求描述今天查询大数据平台,看到刚刚发布的APP版本有crash,然后平台上的crash都是混淆的样子,类似如下所示:所以我得使用proguardgui.jar工具来进行反混淆,查看出现问题的代码在哪里。但是我准备打开proguardgui.jar工具的时候,发现打不开,如下所示:C:\Android\SDK\tools\proguard\lib\proguardgui.jar工具被7zip压缩软件当做压缩包了。直接双击,打开,如下所示,展开了jar包的内容。但是实际上我是想运行这个C原创 2021-09-10 09:30:34 · 6936 阅读 · 1 评论 -
经过优化测试的SQL分页存储过程
建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件转载 2013-03-07 17:29:26 · 1828 阅读 · 0 评论 -
我的Java开发学习之旅------>Workspace in use or cannot be created, choose a different one.--错误解决办法
今天使用Eclipse时,突然卡死了,然后我强制关闭了Eclipse,再重新打开的时候就报错了,错误如下:Workspace in use or cannot be created, choose a different one. 错误原因:出现这种情况一般是workspace的配置文件中出现了.lock文件(workspace/.metadata/.lock),锁定了workspa原创 2015-07-08 10:26:28 · 5200 阅读 · 0 评论 -
我的Java开发学习之旅------>使用循环递归算法把数组里数据数组合全部列出
面试题如下:把一个数组里的数组合全部列出,比如1和2列出来为1,2,12,21。(面试题出自《Java程序员面试宝典》)代码如下:import java.util.Arrays;import java.util.LinkedList;import java.util.List;/** * 把一个数组里的数组集合全部列出,比如1和2列出来为1,2,12,21 */原创 2015-06-16 23:55:53 · 3901 阅读 · 0 评论 -
我的Java开发学习之旅------>求字符串中出现次数最多的字符串以及出现的次数
金山公司面试题:一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。此题的解题思路如下:引入TreeSet:通过集合快速找到所有出现过的字符串引入ArrayList:为了快速排序,再通过StringBuffer生成排序原创 2015-06-17 01:32:46 · 3353 阅读 · 0 评论 -
我的Java开发学习之旅------>计算从1到N中1的出现次数的效率优化问题
有一个整数n,写一个函数f(n),返回0到n之间出现的"1"的个数。比如f(1)=1;f(13)=6,问一个最大的能满足f(n)=n中的n是什么?例如:f(13)=6, 因为1,10,11,12,13.正好是6个1。解析:这题关键在效率上,在没有发现很科学、快速地计算出个数的情况下,可以采取缓存的机制。因为就2000000来说,计算时间就已经无法忍受了,因此,可以把以前的计原创 2015-06-17 03:18:11 · 2444 阅读 · 0 评论 -
我的Java开发学习之旅------>求N内所有的素数
一、素数的概念质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2原创 2015-06-17 11:58:24 · 4055 阅读 · 0 评论 -
我的Java开发学习之旅------>System.nanoTime与System.currentTimeMillis的区别
首先来看一道题:下面代码的输出结果是什么?import java.util.HashMap;import java.util.Map;public class HashMapTest { public static void main(String[] args) { Map<String, String> map=new HashMap<String, String...原创 2015-06-17 16:55:59 · 10221 阅读 · 3 评论 -
我的Java开发学习之旅------>在Dos环境下Java内部类的编译和运行
习惯了在IDE工具上进行代码编写,连最基本的Javac命令和Java命令都忘记的差不多了,今天对一个Java内部类进行编译和运行的时候,就出糗了。 IDE是把双刃剑,它可以什么都帮你做了,你只要敲几行代码,点几下鼠标,程序就跑起来了,用起来相当方便。你不用去关心它后面做了些什么,执行了哪些命令,基于什么原理。然而也是这种过分的依赖往往让人散失了最基本的技能,当到了一个没有IDE的地方,你便觉原创 2015-06-17 16:10:30 · 2844 阅读 · 8 评论 -
我的Java开发学习之旅------>Java String对象作为参数传递的问题解惑
又是一道面试题,来测试你的Java基础是否牢固。题目:以下代码的运行结果是?public class TestValue { public static void test(String str) { str="World"; //代码3 } public static void main(String[] args) { String string = "Hello";原创 2015-06-16 19:45:43 · 2569 阅读 · 1 评论 -
我的Java开发学习之旅------>解惑Java进行三目运算时的自动类型转换
今天看到两个面试题,居然都做错了。通过这两个面试题,也加深对三目运算是的自动类型转换的理解。题目1.以下代码输出结果是()。public class Test { public static void main(String[] args) { int a=5; System.out.println("value is :"+((a<5)?10.9:9)); }}原创 2015-06-16 01:39:31 · 3049 阅读 · 2 评论 -
我的Java开发学习之旅------>Java使用ObjectOutputStream和ObjectInputStream序列号对象报java.io.EOFException异常的解决方法
今天用Ob原创 2015-06-11 00:10:52 · 15119 阅读 · 4 评论 -
我的Java开发学习之旅------>Java NIO 报java.nio.charset.MalformedInputException: Input length = 1异常
今天在使用Java NIO的Channel和Buffer进行文件操作时候,报了java.nio.charset.MalformedInputException: Input length = 1异常,具体如下:java.nio.charset.MalformedInputException: Input length = 1 at java.nio.charset.CoderResult.t原创 2015-06-11 23:18:38 · 112634 阅读 · 24 评论 -
我的Java开发学习之旅------>Java使用Fork/Join框架来并行执行任务
现代的计算机已经向多CPU方向发展,即使是普通的PC,甚至现在的智能手机、多核处理器已被广泛应用。在未来,处理器的核心数将会发展的越来越多。虽然硬件上的多核CPU已经十分成熟,但是很多应用程序并未这种多核CPU做好准备,因此并不能很好地利用多核CPU的性能优势。为了充分利用多CPU、多核CPU的性能优势,级软基软件系统应该可以充分“挖掘”每个CPU的计算能力,决不能让某个CPU处于“空闲”原创 2015-06-14 15:37:45 · 10974 阅读 · 1 评论 -
我的Java开发学习之旅------>Java语言中方法的参数传递机制
如果声明方法时包含来了形参声明,则调用方法时必须给这些形参指定参数值,调用方法时传给形参的参数值也被称为shican Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。 Java参数,不管是原始类型还是引用类型原创 2015-06-06 11:59:32 · 2102 阅读 · 0 评论 -
我的Java开发学习之旅------>工具类:Java使用正则表达式分离出字符串中的中文和英文
今天看到一个工具类使用正则表达式将一大段字符串中的中文和英文都分离出来了,在此记录一下,读者可以收藏!import java.util.ArrayList;import java.util.Collection;import java.util.List;import java.util.regex.Pattern;/** * 将字符串中的中文和英文都分离出来 * @author原创 2013-12-10 20:08:28 · 2996 阅读 · 0 评论 -
我的Java开发学习之旅------>使用Working Setst将Eclipse中的项目分类使项目一目了然
今天发现Eclipse中若有太多的项目,杂七杂八的,看起来会非常的痛苦。今天请教公司的前辈学会了一个方法,在Eclipse中,当项目比较多的时候,我们可以用WorkingSet将这些项目分类,把相关连的工程放在一个Java Working Set中 再把需要显示出来的打钩,这样在Package Explorer选项卡中可以使各类项目一目了然。下面将具体的步骤展现出来,仅供参考。第一原创 2013-12-04 16:54:32 · 3014 阅读 · 1 评论 -
我的Java开发学习之旅------>工具类:将播放器的进度值转换成相应的时间格式
在我的博客《我的Java开发学习之旅------>Java 格式化类(java.util.Formatter)基本用法》中,就使用过了过了Formatter将播放器的进度值之转换为相应的时间,下面这个工具类也可以实现同样的效果。 /** * 得到(当前播放时间/总播放时间)的格式如: * 00:00:08/00:01:40 * 00:03:00/00:30:00 * @au原创 2013-12-06 11:52:15 · 3568 阅读 · 0 评论 -
我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值
MD5 即Message-Digest Algorithm 5(信息-摘要算法5 ),是一种用于产生数字签名的单项散列算 法,在1991年由MIT Laboratory for Computer Science(MIT计算机科学实验室)和RSA Data Security Inc(RSA数据安全公司)的Ronald L. Rivest教授开发出来,经由MD2、MD3和MD4发展而来。MD5算法的使原创 2013-12-07 17:20:23 · 3268 阅读 · 0 评论 -
我的Java开发学习之旅------>Java 格式化类(java.util.Formatter)基本用法
本文参考:http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.htmlhttp://www.blogjava.net/AS-COM/archive/2011/03/15/346321.html?opt=admin有时会想把数字,日期,字符串按照给定规则给格式化。SUN JDK为我们提供了这原创 2013-11-16 11:25:16 · 5730 阅读 · 2 评论 -
我的Android进阶之旅------>如何将Android源码导入Eclipse中来查看(非常实用)
Android源码下载完成的目录结构如如所示:step1:将.classpath文件拷贝到源代码的根目录Android源码支持多种IDE,如果是针对APP层做开发的话,建议大家使用Eclipse开发环境。在源码路径(~/development/ide/eclipse)下,Android提供了.classpath配置文件(备注:该文件为隐藏文件)。 cp...原创 2013-08-27 16:52:46 · 16825 阅读 · 8 评论 -
Java语言实现简单FTP软件------>源码放送(十三)
Java语言实现简单FTP软件------>FTP协议分析(一)Java语言实现简单FTP软件------>FTP软件效果图预览之下载功能(二)Java语言实现简单FTP软件------>FTP软件效果图预览之上传功能(三)Java语言实现简单FTP软件------>FTP软件主界面的实现(四)Java语言实现简单FTP软件------>FT原创 2013-08-14 20:50:37 · 7714 阅读 · 11 评论 -
Java语言实现简单FTP软件------>辅助功能模块FTP站点管理的实现(十二)
Java语言实现简单FTP软件------>辅助功能模块FTP站点管理的实现(十二)1、FTP站点管理 1) 连接站点 2) 添加站点 3) 编辑站点 4) 删除站点2、上传/下载任务结束后自动关机3、软件系统化托盘原创 2013-08-14 20:35:31 · 3297 阅读 · 0 评论 -
Java语言实现简单FTP软件------>上传下载管理模块的实现(十一)
Java语言实现简单FTP软件------>上传下载管理模块的实现(十一)1、上传本地文件或文件夹到远程FTP服务器端的功能实现2、下载远程FTP服务器端的文件或文件夹到本地的功能实现3、上传下载中的进度条功能实现原创 2013-08-14 20:21:18 · 4810 阅读 · 0 评论 -
Java语言实现简单FTP软件------>远程文件管理模块的实现(十)
Java语言实现简单FTP软件------>远程文件管理模块的实现(十)1、远程FTP服务器端的文件列表的显示2、刷新远程FTP服务器端的文件列表3、新建远程FTP服务器端的文件夹4、 删除远程FTP服务器端的文件5、重命名远程FTP服务器端的文件原创 2013-08-13 20:14:27 · 4953 阅读 · 0 评论 -
Java语言实现简单FTP软件------>本地文件管理模块的实现(九)
Java语言实现简单FTP软件------>本地文件管理模块的实现(九)1、本地文件列表的显示功能2、本地文件列表的刷新功能3、 新建本地文件夹功能4、删除本地文件功能5、重命名本地文件功能原创 2013-08-13 20:03:31 · 4127 阅读 · 0 评论 -
Java语言实现简单FTP软件------>连接管理模块的实现:主机与服务器之间的连接与关闭操作(八)
Java语言实现简单FTP软件------>连接管理模块的实现:主机与服务器之间的连接与关闭操作(八)(1)FTP连接 运行FTP客户端后,首先是连接FTP服务器,需要输入FTP服务器的IP地址及用户名、密码以及端口号后点击连接按钮开始连接FTP服务器,连接流程图如下图所示。(2)FTP断开 点击“断开”按钮,会停止上传线程,停止下载线程,清空任务队列,清除FTP资源表格内容,清除本地面板的队列等,断开端连接模块流程图如图所示。原创 2013-08-13 19:43:57 · 4233 阅读 · 0 评论 -
Java语言实现简单FTP软件------>上传下载队列窗口的实现(七)
1、首先看一下队列窗口的界面 2、看一下上传队列窗口的界面 3、看一下下载队列窗口的界面 4.队列窗口的实现package com.oyp.ftp.panel.原创 2013-08-05 17:51:10 · 4287 阅读 · 0 评论 -
Java语言实现简单FTP软件------>FTP软件远程窗口的实现(六)
1、首先看一下远程窗口的布局效果 2、看一下本地窗口实现的代码框架3、远程窗口主要实现代码FtpPanel.javapackage com.oyp.ftp.panel.ftp;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.A原创 2013-07-31 21:35:41 · 4588 阅读 · 1 评论 -
Java语言实现简单FTP软件------>FTP软件本地窗口的实现(五)
Java语言实现简单FTP软件------>FTP软件本地窗口的实现(五)原创 2013-07-31 21:29:23 · 6232 阅读 · 0 评论 -
Java语言实现简单FTP软件------>FTP软件主界面的实现(四)
Java语言实现简单FTP软件------>FTP软件主界面的实现(四) 首先介绍程序的主入口FTPMain.java,采用了一个漂亮的外观风格。原创 2013-07-31 21:19:24 · 7079 阅读 · 10 评论 -
Java语言实现简单FTP软件------>FTP软件效果图预览之上传功能(三)
Java语言实现简单FTP软件------>FTP软件效果图预览之上传功能(三) 下面展示一下上传功能的过程原创 2013-07-30 22:56:51 · 5021 阅读 · 0 评论 -
Java语言实现简单FTP软件------>FTP软件效果图预览之下载功能(二)
介绍完FTP协议后,来看看该软件完成后的效果图客户端的主界面如上图所示,主要是分为以下几个界面:数据输入界面:用来让用户输入服务器的地址,用户名,密码,端口号等。站点菜单、本地菜单、远程菜单以及帮助菜单。本地文件信息显示界面:主要是用来显示本地文件列表以及文件详情,以及对文件进行相关操作。远程文件信息显示界面:主要是用来显示远程FTP服务器端文件列表以及文件详情,以及对文件进行相关原创 2013-07-30 22:27:45 · 7902 阅读 · 6 评论 -
Java语言实现简单FTP软件------>FTP协议分析(一)
FTP(File Transfer Protocol)就是文件传输协议。通过FTP客户端从远程FTP服务器上拷贝文件到本地计算机称为下载,将本地计算机上的文件复制到远程FTP服务器上称为上传,上传和下载是FTP最常用的两个功能。FTP使用传输层的TCP协议进行传输,因此客户端与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。FTP的目标有以下目标: 提高文件的原创 2013-07-30 22:04:36 · 10640 阅读 · 3 评论 -
我的Java开发学习之旅------>二进制、八进制、十进制、十六进制之间转换
一、 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为原创 2013-06-23 15:52:46 · 2294 阅读 · 0 评论 -
我的Java开发学习之旅------>java生成pdf方案
java生成pdf方案很多,常用的如下:1. 利用jacob生成pdf:这种方法调用office的本地方法实现对pdf API的操作,只能在windows平台使用2. 利用openoffice生成pdf:openoffice是开源软件且能在windows和linux平台下运行3. itext + flying saucer生成pdf:itext和flying saucer都原创 2013-03-07 00:57:00 · 1983 阅读 · 0 评论 -
我的Java开发学习之旅------>介绍一个Java生成PDF的方案
在Java世界,要想生成PDF,方案不少。最近一直在和这个东西打交道,所以简单做一个小结吧。在此之前,先来勾画一下我心中比较理想的一个解决方案。在企业应用中,碰到的比较多的PDF的需求,可能是针对某个比较典型的具备文档特性的内容,导出成为PDF进行存档。由于我们现在往往使用一些开源框架,诸如ssh来构建我们的应用,所以我们相对熟悉的方案是针对具体的业务逻辑设计实体,使用开源框架来实现我们的原创 2013-03-07 00:58:01 · 1545 阅读 · 0 评论 -
我的Java开发学习之旅------>Java经典面试题
从享受生活的角度上来说:“程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说是即使有可以做的工作但是你非常不愿意去做;第二,你非常痴迷和爱好程序,并且在这方面有一些天赋和优势。程序员的结局也是有两种:第一,默默退休,第二以程序员为起点或跳板,注意积累,跟对了好的老板或团队,找到和很好的搭档自己创业,成为IT金领和富翁。”人们在时间面前是平等的原创 2013-03-07 01:09:58 · 12408 阅读 · 5 评论 -
我的Java开发学习之旅------>Java ClassLoader解析二(转)
一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在原创 2013-05-05 06:36:21 · 2492 阅读 · 0 评论