![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
尽拣寒枝不肯栖
这个作者很懒,什么都没留下…
展开
-
jad.exe source not found
解决了一个问题:添加了反编译还是报错source not found!原因是虽然制定了jadclipse,但是在查看class或者jar文件的时候,还是使用的class file viewer!而没有使用我们的jdclipse,我们应该设置jdclipse为default。就解决问题了。...原创 2018-03-30 01:02:02 · 433 阅读 · 0 评论 -
string类为什么不能不继承
Java中,是否可以继承String类?为什么?答案: 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。public final class String implements java.io.Serializable, ComparableString>, CharSequence 11详细解析:1. 关于fi转载 2016-09-25 11:02:36 · 4925 阅读 · 1 评论 -
JVM
堆栈这个概念存在于数据结构中,也存在于jvm虚拟机中,在这两个环境中是截然不同的意思。在数据结构中,堆栈是:堆 和栈两种数据结构,堆是完全二叉树,堆中各元素是有序的。在这个二叉树中所有的双亲节点和孩子节点存在着大小关系,如所有的双亲节点都大于孩子节点则 为大头堆,如果所有的双亲节点都小于其孩子节点说明这是一个小头堆,建堆的过程就是一个排序的过程,堆得查询效率也很高。栈是一种先进后出的线性表转载 2016-09-25 10:43:52 · 193 阅读 · 0 评论 -
java基础-继承-封装-多态
1.继承:子类继承父类,实现代码的复用。父类遵循李氏代换原则,向修改关闭,对扩展开放=>开闭原则子类自动拥有父类的除私有属性和构造方法外其他属性和方法。子类可以扩展属性和方法,也可以复写父类的方法。2.封装:又称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起。通俗讲:类中有private属性,在类外要使用该属性,只有通过public方法如get/set原创 2016-09-21 18:35:00 · 280 阅读 · 0 评论 -
堆排序
Java排序算法(三):堆排序堆积排序(Heapsort)是指利用堆积树(堆)这种资料结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。堆排序是不稳定的排序方法,辅助空间为O(1), 最坏时间复杂度为O(nlog2n) ,堆排序的堆序的平均性能较接近于最坏性能。 堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(转载 2016-09-24 00:45:27 · 223 阅读 · 0 评论 -
java自动装箱与拆箱
这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆:java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装成为装箱,解包装称为拆箱);其实按照我自己的理解自动装箱就可以简单的理解为将基本数据类型封装为对象类型,来符合java的面向对象;例如用int来举例://声明一个Integer对象In转载 2016-08-27 00:57:05 · 396 阅读 · 0 评论 -
求数字二进制表示中的1的个数
public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int count = 0; while(n!=0){ n&=n-1;count++; } return count; }}不多说了原创 2016-09-05 23:47:35 · 419 阅读 · 0 评论 -
classloader详解
ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象。 1.1 几个相关概念ClassLoader负责载入系统的所有Resources(Class,文件,来自网络的字节流等),通过ClassLoader从而将资源载入JVM 每个class都有一个reference,指向自己的C转载 2016-09-05 19:39:16 · 235 阅读 · 0 评论 -
stackoverflow重要性
作为一名程序员,如果没有听过 Stackoverflow,那么你最好去面壁思过一下。程序员最需要阅读的一本编程书籍(其实编程书留下这本就够了!): (主页君强势插入,上图是一张恶搞图,之前有网友没看懂这张,特别说一下) 那些还没有读过这本书的程序员,是时候买一本了。如果还在犹豫,那么先看下这篇文章,看看为什么离不开 stackoverflow。 提问的智慧 当转载 2016-08-25 22:40:15 · 4709 阅读 · 0 评论 -
从1到n中1出现的次数
突然发现书上这个题目怎么代码好复杂,也没细看直接上我的代码:public class Solution { public int NumberOf1Between1AndN_Solution(int n) { int num = n; int small = 1; int sum = 0; while(n!=0){ int p_ = n/10; int原创 2016-09-18 01:40:46 · 298 阅读 · 0 评论 -
for ++i i++
for(int i=0;i 我们经常会使用这样的代码来做循环,一般在for循环中习惯于使用i++,却很少使用++i。虽然从代码执行的效果来看,它们并无任何区别,但是它们所生成的代码是有有所不同的。 i++ :先引用后增加++i :先增加后引用 意思就是说就是 i++ :先在i所在的表达式中使用i的当前值,后让i加1转载 2016-09-18 00:13:13 · 269 阅读 · 0 评论 -
string stringbuffer stringbuilder
关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String 的原因 String:字符串常量 StringBuffer:字符串变量 StringBui转载 2016-09-18 00:05:45 · 155 阅读 · 0 评论 -
递归调用中栈溢出原因
那么过多的递归调用为什么会引起栈溢出呢?事实上,函数调用的参数是通过栈空间来传递的,在调用过程中会占用线程的栈资源。而递归调用,只有走到最后的结束点后函数才能依次退出,而未到达最后的结束点之前,占用的栈空间一直没有释放,如果递归调用次数过多,就可能导致占用的栈资源超过线程的最大值,从而导致栈溢出,导致程序的异常退出。原创 2016-09-17 11:17:35 · 9997 阅读 · 3 评论 -
set collection list
java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。简单说下集合和转载 2016-08-12 15:23:34 · 204 阅读 · 0 评论 -
new scanner(system.in)超时问题
当new scanner(system.in)超时的时候,我们可以改为Scanner scanner = new Scanner(new BufferedInputStream(System.in));原创 2016-08-21 23:03:40 · 2314 阅读 · 5 评论 -
关于数组的面试题
Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册 博文 博主 梦醒潇湘loveloveyou1314.blog.chinaunix.net通过别人的经验来提高自己的同时,自己要多多努力~~2016中国数据库技术大会门票申请新注册用户开通“博客写作”功能,需要申请与实名认证互转载 2016-09-22 00:01:40 · 341 阅读 · 0 评论 -
GC
jvm如何知道那些对象需要回收1 首先的问题是:jvm如何知道那些对象需要回收 ?目前有两种算法引用计数法每个对象上都有一个引用计数,对象每被引用一次,引用计数器就+1,对象引用被释放,引用计数器-1,直到对象的引用计数为0,对象就标识可以回收这个可以用数据算法中的图形表示,对象A-对象B-对象C 都有引用,所以不会被回收,对象B由于没有被引转载 2016-09-26 00:39:24 · 317 阅读 · 0 评论 -
utf8编码
UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所以可以看出unicode是给出一个字符的范围,定义了这个字是码值是多少,至于具体的实现方式可以有多种多样来实现。UTF-8是一种变长字节编码方式。对于某一个字符的UTF-8编码,如转载 2016-12-02 11:18:07 · 333 阅读 · 0 评论 -
java读取文件几种方式
1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String fileName) {转载 2016-11-01 19:48:57 · 6085 阅读 · 0 评论 -
Axis2介绍
使用axis2进行WebService的开发Apache Axis2 是 Apache Axis SOAP 项目的后继项目。此项目是 Web 服务核心引擎的重要改进,目标是成为 Web 服务和面向服务的体系结构(Service-Oriented Architecture,SOA)的下一代平台。axis2 WebService开发分为服务端开发与客户端开发,服务端开发为对外提供服务,客户转载 2016-10-29 22:00:41 · 1423 阅读 · 4 评论 -
axis
一、Axis2的下载和安装 1.可从http://ws.apache.org/axis2/ 下载Axis2的最新版本: 可以下载如下两个zip包: axis2-1.5.4-bin.zip axis2-1.5.4-war.zip 其中 axis2-1.5.4-bin.zip文件中包含了Axis2中所有的jar文件,转载 2016-10-29 20:17:02 · 354 阅读 · 0 评论 -
CXF
开发环境:Eclipse3.4.2 + Tomcat6.0 + JDK1.6 + CXF2.2.3 1、Eclipse新建一个Dynamic Web Project工程CxfTest,我习惯把WebContent改为WebRoot,建好后在工程属性Properties->Java Build Path->Source->Default output folder里把CxfTes原创 2016-10-29 01:18:07 · 320 阅读 · 1 评论 -
多线程-----经典解释监视器和对象锁
在JVM的规范中,有这么一些话: “在JVM中,每个对象和类在逻辑上都是和一个监视器相关联的” “为了实现监视器的排他性监视能力,JVM为每一个对象和类都关联一个锁” “锁住了一个对象,就是获得对象相关联的监视器” 从这些话,看出监视器和对象锁好像是一回事,那为何要定义两个东西,若不一样,他们的关系如何? 解释1: 监视器好转载 2016-10-16 17:07:15 · 451 阅读 · 0 评论 -
JAVA 的wait(), notify()与synchronized同步机制
在JAVA中,是没有类似于PV操作、进程互斥等相关的方法的。JAVA的进程同步是通过synchronized()来实现的,需要说明的是,JAVA的synchronized()方法类似于操作系统概念中的互斥内存块,在JAVA中的Object类型中,都是带有一个内存锁的,在有线程获取该内存锁后,其它线程无法访问该内存,从而实现JAVA中简单的同步、互斥操作。明白这个原理,就能理解为什么synchron转载 2016-10-16 17:03:56 · 382 阅读 · 0 评论 -
java常量池理解
常量池(constant_pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量和符号引用。运行时常量池是方法区的一部分。 在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存储主版转载 2016-09-27 23:45:22 · 290 阅读 · 0 评论 -
判断对象==
public class tmp { public static void main(String[] args) {// int[] a = { 0, 1, 2, 3, 4, 5, 6, 7 };// int[] b = Arrays.copyOf(a, 5);// int[] c = Arrays.copyOfRange(a, 2, 5);// System.out.pri原创 2016-09-27 22:18:35 · 277 阅读 · 0 评论 -
二叉树
二叉查找树=二叉搜索树=二叉排序树:左小右大,无相等值节点。平衡二叉树:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。比如:红黑树。AVL。TREAP。伸展树。SBT原创 2016-09-27 01:30:35 · 524 阅读 · 0 评论 -
java数据类型所占字节数
java中字节是byte,1byte = 8 bits;char占2个byteshort占2个byteint占4个bytelong占8个byteflaot占4个byte原创 2016-09-26 21:33:09 · 366 阅读 · 0 评论 -
论记录的重要性
说写技术报告,好久都没有动工,一直忙活各种事情。技术报告这东西真是好东西。所有的记录性质的资料对于我们的工作重要性不言而喻!!以后真真要做好各方面的记录,好好做记录!!原创 2016-09-26 13:57:37 · 1604 阅读 · 0 评论 -
信息传播
这么多天忙活没想到在本地运行程序,数据保存到远端。。。做东西还是要先思考清楚再做。不然白白浪费这么长时间。原创 2016-09-06 16:21:56 · 287 阅读 · 0 评论 -
同步,阻塞,select/poll/epoll
针对IO,总是涉及到阻塞、非阻塞、异步、同步以及select/poll和epoll的一些描述,那么这些东西到底是什么,有什么差异?一般来讲一个IO分为两个阶段:等待数据到达把数据从内核空间拷贝到用户空间现在假设一个进程/线程A,试图进行一次IO操作。A发出IO请求,两种情况: 1)立即返回 2)由于数据未准备好,需要等待,让出CPU给别的线程,自转载 2016-09-26 00:40:26 · 419 阅读 · 0 评论 -
maven
Maven的坐标为各种构件引入了秩序,任何一个构件都必须明确的定义自己的坐标,maven的坐标包括如下的元素:groupId: 定义当前Maven项目隶属的实际项目artifactId: 该元素定义实际项目中的一个Maven项目或模块version: 该元素定义Maven项目当前所处的版本packaging: 该元素定义Maven项目的打包方式classif转载 2016-08-10 01:34:05 · 180 阅读 · 0 评论 -
异或用处大2
异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0。简单理解就是不进位加法,如1+1=0,,0+0=0,1+0=1。性质1、交换律2、结合律(即(a^b)^c == a^(b^c))3、对于任何数x,都有x^x=0,x^转载 2016-08-09 22:16:45 · 1168 阅读 · 0 评论 -
异或用处大1
一、交换两个整数的值而不必用第三个参数a = 9;b = 11;a=a^b; 1001^1011=0010b=b^a; 1011^0010=1001a=a^b; 0010^1001=1011a = 11;b = 9;二、奇偶判断^a操作就是将a中的每一位按位逐一进行异或,例如a=4'b1010,则b=1^0^1^0=0,由此可以判断a中为1的位数是奇数转载 2016-08-09 22:03:22 · 1718 阅读 · 0 评论 -
eclipse console输出
当你在Eclipse中 running/debugging一个应用程序的时候,有关该应用程序的运行调试信息及日志信息都会输出到控制台(console )显示,但是Eclipse只会显示最后一部分的日志信息,如果你的应用程序会产生大量的运行调试信息及日志信息,你可能会想保持这些信息到文件中,以便查看分析。有三种方法仅供参考:(1)、我们可以设置Eclipse保存控制台文件。打开Run ->原创 2016-05-04 10:47:20 · 3374 阅读 · 0 评论 -
eclipse里的插件问题
由于很多东西都使用eclipse,比如python,php,mapreduce好像还有一些,插件太多,导致老是出现比如java的class重新编译问题,python编译问题。对于java的问题,需要将项目中的bin目录及其之下的class文件全部删除,然后在project->build automatically重新编译就可以了。原创 2016-05-03 22:02:40 · 210 阅读 · 0 评论 -
set map list vector
1.Collection List Set Map 区别记忆这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否允许元素重复否Collection否是转载 2016-03-11 01:23:16 · 209 阅读 · 0 评论 -
java下的printf(jdk1.5+)
目前printf支持以下格式: %c 单个字符 %d 十进制整数 %f 十进制浮点数 %o 八进制数 %s 字符串 %u 无符号十进制数 %x 十六进制数 %% 输出百分号% printf的格式控制的完整格式: % - 0 m.n l或h转载 2016-03-17 11:08:33 · 401 阅读 · 0 评论 -
找不到或无法加载主类
主要是配置文件的路径问题。打开终端,输入vi ~/.bashrc添加如下代码即可。set JAVA_HOME=/usr/java/jdk1.7.0-05export JAVA_HOMEset PATH=$JAVA_HOME/bin:$PATHexport PATHset CLASSPATH=.:$JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.原创 2016-04-18 21:34:48 · 814 阅读 · 0 评论 -
eclipse no project are found to import
这种问题是由于项目是导入的,而没有初始化,缺少.buildpath和.project文件。解决方法很多,可以从其他项目中拷贝这两个文件,再修改其内容;也可以在eclipse中新建项目(与导入文件同名),自动创建相应文件。然后在把两个文件(.buildpath和.project)拷贝至要导入的项目,再次导入时就可以看到导入成功了。原创 2016-04-28 20:17:01 · 1222 阅读 · 0 评论