java
文章平均质量分 53
战争学院
祖国的花朵
展开
-
break语句
break语句break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch 中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语原创 2015-09-29 21:23:29 · 328 阅读 · 0 评论 -
java >>>
>>> (无符号右移位) 无论正负高位插 0 .java 代码中3个连续的大于号表示什么意思?如int m = (i+j) >>> 13个连续大于号表示右移一位?是不是相当于做了一次除2运算?以上句子无符号右移一位!是以二进制代码进行的!一个字节表示一个数字。即使八个比特位 如 22 二进制是 00010110 用你的式子就变成了:000原创 2015-09-30 09:42:17 · 525 阅读 · 0 评论 -
堆和栈的区别
堆和栈的区别: 一、堆栈空间分配区别: 1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈; 2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。 二、堆栈缓存方式区别: 1、栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放原创 2015-09-30 09:58:53 · 211 阅读 · 0 评论 -
java集合的总结
Set:不区分元素的顺序,不允许出现重复的值list:区分元素的顺序,且允许出现重复的值map:采用key——values的,不允许有重复的键,每个键最多对应一个值java集合只能保存引用类型的数据,是对象的引用Collection接口描述set和list集合类型的根接口相关方法: add()如果增加重复元素,则增加失败,返回false转载 2015-09-22 10:35:39 · 359 阅读 · 0 评论 -
java中swap()的实现
C代码 //使用指针 void swap(int* a, int* b){ int tmp = *a; *a = *b; *b = tmp; } //使用引用 void swap(int& a,int& b){ int tmp = a;原创 2015-09-30 17:34:43 · 725 阅读 · 0 评论 -
JAVA中float与double的区别
JAVA中float与double的区别博客分类: JAVA基础JavaF# float是单精度类型,精度是6位有效数字,取值范围是10的-38次方到10的38次方,float占用4个字节的存储空间 double是双精度类型,精度是15位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间 当你不声明的时候,默认小数都原创 2015-10-19 21:59:34 · 594 阅读 · 0 评论 -
get post
1. get是从服务器上获取数据,post是向服务器传送数据。2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。3. 对于get方式,服务器端用Request.Quer原创 2015-10-19 17:35:45 · 320 阅读 · 0 评论 -
不规则二维数组
publicclass Array{ publicstatic void main(String [] args){ int[][] a = newint [][]{{1,2,3},{4},{5,6,7,8}};//定义一个不规整的二维数组 for(inti =0;i//原创 2015-11-04 16:46:37 · 1415 阅读 · 1 评论 -
EL表达式
一、EL简介1.语法结构 ${expression}2.[]与.运算符 EL 提供.和[]两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。例如: ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用[]来做,转载 2015-11-05 16:37:44 · 220 阅读 · 0 评论 -
java格式化输出
Java格式化输出 import java.util.Date; /** * 使用printf输出 *//**关键技术点 * 使用java.io.PrintStream的printf方法实现C风格的输出 * printf 方法的第一个参数为输出的格式,第二个参数是可变长的,表示待输出的数据对象 */public class Printf{转载 2015-10-06 16:53:35 · 268 阅读 · 0 评论 -
java内存机制
0.参考资料:http://www.cnblogs.com/xwdreamer/archive/2012/04/01/2428857.html1.Java的内存机制 Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当转载 2015-11-07 14:11:21 · 221 阅读 · 0 评论 -
ArrayList的使用方法
1、什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素实现了ICollection和IList接口灵活的设置数组的大小2、如何使用ArrayList 最简单的例子:ArrayList List = new ArrayList();for( int i=转载 2015-10-09 15:35:59 · 295 阅读 · 0 评论 -
String、StringBuffer与StringBuilder之间区别
1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String2.String 的原因 String:字符串常量 StringBuffer:字符创变量 StringBuilder:字符创变量 从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你原创 2015-10-09 13:30:01 · 229 阅读 · 0 评论 -
表达式转型注意事项,和final修饰的变量会被JVM优化
1java中表达式转型需要注意实例如下:byte b1=1,b2=2,b3,b6; final byte b4=4,b5=6; b6=b4+b5; b3=(b1+b2); System.out.println(b3+b6);问会出现什么状况:A、输出结果:13,B、b6=b4+b5 编译出错 C、b3=b1+b2编译出错 D、运行异常首先表达式转载 2015-10-28 13:16:39 · 521 阅读 · 0 评论 -
Java关键字final、static使用总结
Java关键字final、static使用总结 一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final转载 2015-10-28 13:18:51 · 284 阅读 · 0 评论 -
java 内存溢出问题以及 java内存简单机制
java内存简单介绍 java中常用的内存区域 在java中主要存在4块内存空间,这些内存的名称及作用如下: 1.栈内存空间:保存所有的对象名称(更准确地说是保存了引用的堆内存空间的地址) 2.堆内存空间:保存每个对象的具体属性内容。 3.全局数据区:保存static类型的属性。 4.全局代码区:保存所有的方法定义。另一种介绍,简单的把java把原创 2015-11-24 15:54:38 · 336 阅读 · 0 评论 -
Int[]数组与List的相互转化,String[]数组与List的相互转化
遍历的办法肯定亦可以做到相互转化,但是遍历起来代码量多,本文使用java.util.Arrays类中自带的方法可以方便的实现该功能。Int[]数组转为List,String[]数组转为List 查看api文档可以发现java.util.Arrays类中自带的方法asList() public static List asList(T… a)返回一个受指定数组支持的固定大小的列表。(对原创 2015-11-24 15:47:22 · 3337 阅读 · 2 评论 -
java获取文件编码实现
在不知道文件是什么编码的时候,怎么办 ?这个文件如果是从服务器中直接通过程序得到的,不知道其编码内容,该如何去得到其内容,让内容不是乱码public static String codeString(String fileName) throws Exception{ BufferedInputStream bin = new BufferedInputStr原创 2015-12-15 19:15:28 · 377 阅读 · 0 评论 -
Java中super的几种用法并与this的区别
子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println(“Base”); } }public class Checket extends Base { Checket() { super();//调用父类的构造方法,一定要放在方法的首个语句转载 2015-12-16 17:44:27 · 222 阅读 · 0 评论 -
Java HashMap的工作原理
文章出处:http://www.importnew.com/10620.html面试的时候经常会遇见诸如:“java中的HashMap是怎么工作的”,“HashMap的get和put内部的工作原理”这样的问题。本文将用一个简单的例子来解释下HashMap内部的工作原理。首先我们从一个例子开始,而不仅仅是从理论上,这样,有助于更好地理解,然后,我们来看下get和put到底是怎样工作的。转载 2016-01-18 21:27:36 · 449 阅读 · 0 评论 -
java中volatile关键字和synchronized 的对比
java中volatile关键字的含义在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchron转载 2015-12-17 09:42:48 · 297 阅读 · 0 评论 -
java封装
封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提原创 2015-12-17 09:44:07 · 247 阅读 · 0 评论 -
链表翻转非递归实现
通过dummy,current两个节点来实现非递归的实现,主要思路就是每次遍历一个节点,让current的节点首先指向之前的dummy节点,然后dummy节点再指向current节点,current节点继续向后遍历。//非递归 public ListNode1 ReverseListZcf(ListNode1 head) { if(head == null) return he原创 2015-12-16 17:08:03 · 287 阅读 · 0 评论 -
堆排序-java实现
堆排序主要的过程就是建立大顶堆或者小顶堆,然后调整堆,最后进行堆排序。 ①建堆,建堆是不断调整堆的过程,从len/2处开始调整,一直到第一个节点,此处len是堆中元素的个数。建堆的过程是线性的过程,从len/2到0处一直调用调整堆的过程,相当于o(h1)+o(h2)…+o(hlen/2) 其中h表示节点的深度,len/2表示节点的个数,这是一个求和的过程,结果是线性的O(n)。 ②调整堆:调整堆原创 2015-12-01 09:09:53 · 298 阅读 · 0 评论 -
希尔排序-shellSort java实现
希尔排序的实质就是分组插入排序,如何选取关键字,选取关键字是希尔排序的关键。 其实就是两步: <1>取步长,然后对每一个步长内的数字进行排序 <2>改变步长,重复步骤一 <3>直到步长为1public static int[] shellSort(int[] A,int n){ i原创 2015-12-01 11:21:13 · 385 阅读 · 0 评论 -
comparator接口与Comparable接口的区别
1. Comparator 和 Comparable 相同的地方他们都是java的一个接口, 并且是用来对自定义的class比较大小的,什么是自定义class: 如 public class Person{ String name; int age }.当我们有这么一个personList,里面包含了person1, person2, persion3....., 我们用Collect转载 2016-01-19 21:19:14 · 217 阅读 · 0 评论 -
java中PriorityQueue优先级队列使用方法
文章出处:http://blog.csdn.net/hiphopmattshi/article/details/7334487 优先级队列是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。 PriorityQueue是从JDK1.5开始提供的新的数据结构接口。 如果不提供Comparator的话,优先队列中元素默认按自然顺序排列,也就是转载 2016-01-19 21:27:20 · 560 阅读 · 0 评论 -
经典排序稳定性、时间空间复杂度分析
首先我们介绍下桶排序,桶排序主要包括计数排序和基数排序 计数排序采用桶排序的思想如下图: 基数排序: 首先根据个位数的大小将一组数放入0-9的桶排序中,然后从0-9号桶倒出所有的数;再次根据十位上的数,放入0-9号桶;直至最后到最高位的数进行放入0-9号桶,最后取出。经典排序算法的空间复杂度: O(1):插入排序、选择排序、冒泡排序、堆排序、希尔排序; O(logN)~O(N):快速排原创 2015-12-01 15:45:47 · 311 阅读 · 0 评论 -
深入理解值传递和引用传递
妹子问我JS关于值传递还是引用传递的问题,之前对于Java中属于值传递问题已经有了深入了解,今天看JS的参数传递问题再次轰然大悟,其实值传递和引用传递只是个名词罢了,要想搞懂这两个区别,还是要理解其原理。1.值传递首先我们要对所传参数分情况,若是基本数据类型(Java中有8个基本数据类型:byte,char,short,int,float,double,long,boolean),则JVM原创 2016-01-20 15:41:33 · 332 阅读 · 0 评论 -
深入了解Java之二(集合方面绪)
1.快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?那么何为”快速失败”机制呢? “快速失败”也就是fail-fast,它是Java集合的一种错误检测机制。当多个线程对集合进行结构上的改变的操作时,有可能会产生fail-fast机制。记住是有可能,而不是一定。例如:假设存在两个线程(线程1、线程2),线程1通过Iterator在遍历集合A中的元素,在某个时候线程2原创 2016-01-21 20:16:29 · 419 阅读 · 0 评论 -
JNI
JAVA基础之理解JNI原理JNI是JAVA标准平台中的一个重要功能,它弥补了JAVA的与平台无关这一重大优点的不足,在JAVA实现跨平台的同时,也能与其它语言(如C、C++)的动态库进行交互,给其它语言发挥优势的机会。有了JAVA标准平台的支持,使JNI模式更加易于实现和使用。在此总结了下面这个知识图:实例:环境说明:ubuntu 10.4.2 LTS系统程序清单1:转载 2015-12-21 22:38:19 · 187 阅读 · 0 评论 -
java 中的 wait()方法和 sleep()方法的区别
sleep和wait的区别有: 1,这两个方法来自不同的类分别是Thread和Object 2,最主要是sleep方法没有释放锁,而wait方法释放了锁,使得敏感词线程可以使用同步控制块或者方法。 3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在 任何地方使用 synchronized(x){ x.no原创 2015-12-22 20:50:32 · 886 阅读 · 0 评论 -
JAVA的可变类与不可变类
ref:http://www.blogjava.net/hilor/articles/150610.html可变类和不可变类(Mutable and Immutable Objects)的初步定义:可变类:当你获得这个类的一个实例引用时,你可以改变这个实例的内容。不可变类:当你获得这个类的一个实例引用时,你不可以改变这个实例的内容。不可变类的实例一但创建,其内在成员变量的值转载 2016-01-23 17:17:25 · 508 阅读 · 0 评论 -
foreach遍历的实质
foreach遍历效率低于普通的遍历方式,而且在遍历Arraylist时访问结果会出现乱序。假设现在我们要求一个 List<Integer> 实例的平均值,我们可以通过如下两种方法进行计算(这里假设我们传入的是ArrayList 对象): 1. 通过 foreach 方式遍历列表计算平均值[java] view plaincopyprint? public static int avera原创 2016-01-08 11:49:49 · 759 阅读 · 0 评论 -
List的五种遍历方式
List的五种遍历方式下面只是简单介绍各种遍历示例(以ArrayList为例),各自优劣会在本文后面进行分析给出结论。(1) for each循环Java1234List list = new ArrayList();for (Integer j : list) { // use j} (2) 显示调用集合迭代器Java原创 2016-01-08 22:35:52 · 319 阅读 · 0 评论 -
Enumeration接口和Iterator接口
分析Enumeration接口和Iterator接口的区别。原创 2016-01-29 10:26:07 · 413 阅读 · 0 评论 -
Java中equals和==的区别
Java中equals和==的区别java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 2.复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,转载 2016-01-29 10:48:20 · 202 阅读 · 0 评论 -
深入了解Java之三(集合方面)
1.Enumeration接口和Iterator接口2.HashSet,LinkedHashSet和TreeSet区别原创 2016-01-29 11:03:33 · 219 阅读 · 0 评论 -
深入了解Java之二(线程方面)
1.线程的各种状态及其之间的关系1.新建(new):新创建了一个线程对象。 2.可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权。 3.运行(running):可运行状态(runnable)的线程获得了cpu时间片(timeslice),执行程序代码。 4.阻塞(bl原创 2016-01-12 21:56:02 · 412 阅读 · 0 评论 -
Statement和PreparedStatement之间的区别
ref: http://www.cnblogs.com/raymond19840709/archive/2008/10/13/1309657.htmlStatement和PreparedStatement之间的区别1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程2.使用 Statement 对象。在对数据库只执行一次转载 2016-03-01 22:39:34 · 259 阅读 · 0 评论