Java学习
文章平均质量分 92
Java学习
字节卷动
字节卷动 | CSDN博客专家
博客知识包括:Android、ASM、OpenGL、C++、Java、Python、Shell、Jenkins、Gitlab、Git、SVN等相关进阶知识。
展开
-
【我的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 · 6982 阅读 · 1 评论 -
【我的Java学习进阶之旅】灵魂一问:一个Java文件的执行全部过程你确定都清楚吗?
原文链接:http://www.cnblogs.com/mengxinJ/p/14251272.html平时我们都使用 idea、eclipse 等软件来编写代码,在编写完之后直接点击运行就可以启动程序了,那么这个过程是怎么样的?总体过程我们编写的 java 文件在由编译器编译后会生成对应的 class 字节码文件, 然后再将 class 字节码文件转给 JVM 。 JVM 会处理解析 class 文件,将其内部设置的类、方法、常量等信息全部提取出来,然后找到 main 方法开始一步一步编译成机.转载 2021-03-04 20:41:42 · 448 阅读 · 1 评论 -
我的Java开发学习之旅------>Java使用Fork/Join框架来并行执行任务
现代的计算机已经向多CPU方向发展,即使是普通的PC,甚至现在的智能手机、多核处理器已被广泛应用。在未来,处理器的核心数将会发展的越来越多。虽然硬件上的多核CPU已经十分成熟,但是很多应用程序并未这种多核CPU做好准备,因此并不能很好地利用多核CPU的性能优势。为了充分利用多CPU、多核CPU的性能优势,级软基软件系统应该可以充分“挖掘”每个CPU的计算能力,决不能让某个CPU处于“空闲”原创 2015-06-14 15:37:45 · 10986 阅读 · 1 评论 -
我的Java开发学习之旅------>Java经典排序算法之归并排序
一、归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并过程为:比较a[i]和a[j]的大小,若a[i]≤a[j],则将第一个有序表中的元素a[i]复制到r[k]中,原创 2015-06-24 18:33:44 · 1900 阅读 · 0 评论 -
我的Java开发学习之旅------>Java经典排序算法之希尔排序
一、希尔排序(Shell Sort)希尔排序(Shell Sort)是一种插入排序算法,因D.L.Shell于1959年提出而得名。Shell排序又称作缩小增量排序。二、希尔排序的基本思想希尔排序的中心思想就是:将数据进行分组,然后对每一组数据进行排序,在每一组数据都有序之后 ,就可以对所有的分组利用插入排序进行最后一次排序。这样可以显著减少交换的次数,以达到加快排序速度的原创 2015-06-19 01:08:47 · 2371 阅读 · 1 评论 -
我的Java开发学习之旅------>Java经典排序算法之二分插入排序
一、折半插入排序(二分插入排序)将直接插入排序中寻找A[i]的插入位置的方法改为采用折半比较,即可得到折半插入排序算法。在处理A[i]时,A[0]……A[i-1]已经按关键码值排好序。所谓折半比较,就是在插入A[i]时,取A[i-1/2]的关键码值与A[i]的关键码值进行比较,如果A[i]的关键码值小于A[i-1/2]的关键码值,则说明A[i]只能插入A[0]到A[i-1/2]之间,故原创 2015-06-24 14:35:09 · 3724 阅读 · 2 评论 -
我的Java开发学习之旅------>Java经典排序算法之快速排序
一、算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。(1) 分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。(2)快速排序的原创 2015-06-24 16:24:14 · 1647 阅读 · 0 评论 -
我的Java开发学习之旅------>Java经典排序算法之插入排序
所谓插入排序法,就是检查第i个数字,如果在它的左边的数字比它大,进行交换,这个动作一直继续下去,直到这个数字的左边数字比它还要小,就可以停止了。插入排序法主要的回圈有两个变数:i和j,每一次执行这个回圈,就会将第i个数字放到左边恰当的位置去。二、算法描述1、从第一个元素开始,该元素可以认为已经被排序。2、取出下一个元素,在已经排序的元素序列中从后向前扫描。3、如果该元素(已排序)大于新元素,则将该元素移到下一位置。4、重复步骤3,直到找到已排序的元素小于或者大于新元素的位置。5、将新元素插入到原创 2015-06-18 14:37:11 · 1627 阅读 · 0 评论 -
我的Java开发学习之旅------>Java经典排序算法之冒泡排序
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。一、算法原理 冒泡排序算法的运作如下:1、比较相邻的元素。如果第一个比第原创 2015-06-18 02:02:52 · 2543 阅读 · 2 评论 -
我的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 · 3055 阅读 · 2 评论 -
我的Java开发学习之旅------>在Dos环境下Java内部类的编译和运行
习惯了在IDE工具上进行代码编写,连最基本的Javac命令和Java命令都忘记的差不多了,今天对一个Java内部类进行编译和运行的时候,就出糗了。 IDE是把双刃剑,它可以什么都帮你做了,你只要敲几行代码,点几下鼠标,程序就跑起来了,用起来相当方便。你不用去关心它后面做了些什么,执行了哪些命令,基于什么原理。然而也是这种过分的依赖往往让人散失了最基本的技能,当到了一个没有IDE的地方,你便觉原创 2015-06-17 16:10:30 · 2854 阅读 · 8 评论 -
我的Java开发学习之旅------>求N内所有的素数
一、素数的概念质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2原创 2015-06-17 11:58:24 · 4071 阅读 · 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 · 3915 阅读 · 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 · 2450 阅读 · 0 评论 -
我的Java开发学习之旅------>求字符串中出现次数最多的字符串以及出现的次数
金山公司面试题:一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。此题的解题思路如下:引入TreeSet:通过集合快速找到所有出现过的字符串引入ArrayList:为了快速排序,再通过StringBuffer生成排序原创 2015-06-17 01:32:46 · 3360 阅读 · 0 评论 -
我的Java开发学习之旅------>Java经典排序算法之选择排序
一、算法原理对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了,然后进行判断,如果这个元素的下标不是第一个元素的下标,就让第一个元素跟他交换一原创 2015-06-18 12:11:57 · 1918 阅读 · 0 评论 -
我的Java开发学习之旅------>Java语言中方法的参数传递机制
如果声明方法时包含来了形参声明,则调用方法时必须给这些形参指定参数值,调用方法时传给形参的参数值也被称为shican Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。 Java参数,不管是原始类型还是引用类型原创 2015-06-06 11:59:32 · 2109 阅读 · 0 评论 -
【我的Java开发学习之旅】如何实现中文汉字进行笔划(笔画)排序?
一、需求描述最近有个需求,要求对列表进行排序,排序规则如下所示:语言(文化)代码国家/地区排序方式zh-CN简体中文(中国)汉语拼音zh-HK繁体中文(中国香港特别行政区)笔划zh-TW繁体中文(中国台湾)笔划关于汉语拼音排序的很久之前就实现了,已经运行两年了。笔划排序的是刚刚要求添加的需求,因此得想办法实现中文汉字进行笔划排序。二、如何实...原创 2018-11-08 16:37:30 · 8263 阅读 · 4 评论 -
Java 多线程断点下载文件_详解
基本原理:利用URLConnection获取要下载文件的长度、头部等相关信息,并设置响应的头部信息。并且通过URLConnection获取输入流,将文件分成指定的块,每一块单独开辟一个线程完成数据的读取、写入。通过输入流读取下载文件的信息,然后将读取的信息用RandomAccessFile随机写入到本地文件中。同时,每个线程写入的数据都文件指针也就是写入数据的长度,需要保存在一个临时文件中。这样当转载 2013-04-04 00:54:13 · 4824 阅读 · 1 评论 -
【我的Android进阶之旅】Android 源代码中的Java代码中//$NON-NLS-1$ 注释是什么意思?
1、背景最近在负责公司基础业务和移动基础设施的开发工作,正在负责Lint代码静态检查工作。因此编写了自定义的Lint规则,在编写自定义的Lint规则前,当然是需要去把Google的关于Lint检测的源代码看一遍学习学习如何编写自定义规则。 google官方的lint源代码链接为: https://android.googlesource.com/platform/tools/base/+/原创 2017-09-12 10:34:09 · 3074 阅读 · 1 评论 -
阿里巴巴 JAVA 开发手册
阿里巴巴 JAVA 开发手册1 / 32Java 开发手册1.0.0 阿里巴巴集团技术部 2016.12.7 首次向 Java 业界公开一、 编程规约(一) 命名规约1. 【强制】所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例: _name / __name / $Object / name_ / name$ / Object$2. 【强制】所有编程相关的命名严禁转载 2017-01-11 19:54:06 · 2575 阅读 · 0 评论 -
Android Studio “佛祖保佑 永无bug“ 注释模板设置详解(仅供娱乐)
1、注释模板效果图今天在网上看到一段有趣的注释,佛祖保佑 永无bug,效果如下图所示: 代码如下所示:/** * _ooOoo_ * o8888888o * 88" . "88 *...原创 2016-07-01 19:58:29 · 41382 阅读 · 11 评论 -
我的Java开发学习之旅------>Java利用Comparator接口对多个排序条件进行处理
一需求二实现Comparator接口三验证排序结果验证第一条件首先按级别排序级别最高的排在前面验证第二条如果级别相等那么按工资排序工资高的排在前面验证第三条如果工资相当则按入职年数排序入职时间最长的排在前面附录javautilComparator接口源代码一、需求 假设现在有个如此的需求:需要对一个这样的雇员列表进行排序,排序规则如下: 1、首先级别最高的排在前面, 2、原创 2016-08-02 15:19:58 · 3652 阅读 · 2 评论 -
我的Android进阶之旅------>Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换)
Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换) 有时候要做出如下所示的展示文件大小的效果时候,需要对文件大小进行转换,然后再进行相关的代码逻辑编写。下面是一个Java文件大小转换工具类 ,可以进行B,KB,MB,GB,TB,PB之间的大小转换。该工具类来源于博客:(http://blog.csdn.net/xmtblog/article/details/27194原创 2016-02-22 16:33:51 · 8234 阅读 · 1 评论 -
我的Java开发学习之旅------>JAVA IO 设计模式彻底分析
本文转载于网络。一。引子(概括地介绍Java的IO) 无论是哪种编程语言,输入跟输出都是重要的一部分,Java也不例外,而且Java将输入/输出的功能和使用范畴做了很大的扩充。它采用了流的 机制来实现输入/输出,所谓流,就是数据的有序排列,而流可以是从某个源(称为流源或Source of Stream)出来,到某个目的地(称为流汇或Sink of Stream)去的。由流的方向,可以分成...转载 2013-03-28 16:21:46 · 2661 阅读 · 1 评论 -
我的Java开发学习之旅------>Java使用ObjectOutputStream和ObjectInputStream序列号对象报java.io.EOFException异常的解决方法
今天用Ob原创 2015-06-11 00:10:52 · 15140 阅读 · 4 评论 -
我的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 · 5209 阅读 · 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 · 10229 阅读 · 3 评论 -
我的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 · 112728 阅读 · 24 评论 -
我的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 · 2580 阅读 · 1 评论 -
我的Java开发学习之旅------>使用Working Setst将Eclipse中的项目分类使项目一目了然
今天发现Eclipse中若有太多的项目,杂七杂八的,看起来会非常的痛苦。今天请教公司的前辈学会了一个方法,在Eclipse中,当项目比较多的时候,我们可以用WorkingSet将这些项目分类,把相关连的工程放在一个Java Working Set中 再把需要显示出来的打钩,这样在Package Explorer选项卡中可以使各类项目一目了然。下面将具体的步骤展现出来,仅供参考。第一原创 2013-12-04 16:54:32 · 3025 阅读 · 1 评论 -
我的Java开发学习之旅------>自己编写的Java数组操作工具
看到网上的一段关于对数组操作的代码,觉得有用,在此备用。import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Map;import java.util.Random;import java.util.TreeMap;/** * @desc 数组操作工具 *原创 2013-05-11 10:27:41 · 2799 阅读 · 0 评论 -
我的Java开发学习之旅------>Eclipse 项目有红感叹号解决之道
今天一个读者问我关于Android通过调用Webservice实现天气预报这篇文章的源码下载后出现的错误Could not find class 'org.ksoap2.transport.HttpTransportSE该问题的解决方法是: SDK升级到R17后,原来正常的程序出问题了,明明已经引用了错误提示中的jar包提示Could not find class 'o原创 2013-07-05 10:21:34 · 7794 阅读 · 0 评论 -
Java语言实现简单FTP软件------>上传下载队列窗口的实现(七)
1、首先看一下队列窗口的界面 2、看一下上传队列窗口的界面 3、看一下下载队列窗口的界面 4.队列窗口的实现package com.oyp.ftp.panel.原创 2013-08-05 17:51:10 · 4297 阅读 · 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 · 1991 阅读 · 0 评论 -
我的Java开发学习之旅------>二进制、八进制、十进制、十六进制之间转换
一、 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为原创 2013-06-23 15:52:46 · 2299 阅读 · 0 评论 -
我的Java开发学习之旅------>介绍一个Java生成PDF的方案
在Java世界,要想生成PDF,方案不少。最近一直在和这个东西打交道,所以简单做一个小结吧。在此之前,先来勾画一下我心中比较理想的一个解决方案。在企业应用中,碰到的比较多的PDF的需求,可能是针对某个比较典型的具备文档特性的内容,导出成为PDF进行存档。由于我们现在往往使用一些开源框架,诸如ssh来构建我们的应用,所以我们相对熟悉的方案是针对具体的业务逻辑设计实体,使用开源框架来实现我们的原创 2013-03-07 00:58:01 · 1556 阅读 · 0 评论 -
优秀程序员不得不知道的20个位运算技巧
一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得位运算是如此之美,后来读到 《Hacker's Delight》,感慨到Henry S.Warren把位运算运用的如此神出鬼没,很多程序都十分精妙,我觉得在一转载 2013-07-27 21:15:28 · 2171 阅读 · 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 · 4597 阅读 · 1 评论 -
Java语言实现简单FTP软件------>FTP软件本地窗口的实现(五)
Java语言实现简单FTP软件------>FTP软件本地窗口的实现(五)原创 2013-07-31 21:29:23 · 6251 阅读 · 0 评论