java
sherry_Rui
这个作者很懒,什么都没留下…
展开
-
JAVA相关基础知识
注:此文为转载,原文cJAVA相关基础知识1、面向对象的特征有哪些方面1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法转载 2014-08-02 20:55:58 · 700 阅读 · 0 评论 -
Java中的平方
编程过程中遇到需要计算n的平方情况,编程语言为JAVA,随手就写成了:tmp = n^2;最后整个程序输出结果和预想不同,调试时候发现,n=9,n^2=11 !!度娘后得知,Java中n^2表示n和2进行异或,即:9: 10012 : 0010异或:1011 (十进制11)在Java中,求一个数平方,可以:tmp = n*n;或者:M原创 2016-03-11 13:40:08 · 49063 阅读 · 0 评论 -
Java List去重的两种方法
通过Iterator遍历,利用remove方法移除:public void testList() { List list=new ArrayList(); list.add(1); list.add(2); list.add(4); list.add(1); list.add(2); list.add(5); list.add(1); List listTemp= n原创 2016-04-05 19:32:12 · 2625 阅读 · 0 评论 -
ArrayList和LinkedList区别及使用场景
1、ArrayList是基于数组实现的,其构造函数为:private transient Object[] elementData;private int size;ArryList初始化时,elementData数组大小默认为10;每次add()时,先调用ensureCapacity()保证数组不会溢出,如果此时已满,会扩展为数组length的1.5倍+1,然后用array.cop原创 2016-04-05 21:25:59 · 9237 阅读 · 2 评论 -
多线程并发处理
一、Synchronized从一个例子入手:实现一个银行账户取钱场景:第一个类:Account.java账户类:package cn.edu.byr.test;public class Account { private String accountNo; private double balance; public Account(){} public A原创 2016-04-06 11:26:40 · 643 阅读 · 0 评论 -
Java中“==”和equals方法
Java程序中测试两个变量是否相等有两个方法,一种是==运算符,另一种是equals方法。==:当时用“==”判断两个变量是否相等时,如果两个变量是基本类型的变量,且都是数值类型,如果两个变量的值相等,则返回true;但对于两个引用变量来说,它们必须指向同一个对象时,==才会返回true。==不能用于比较两个类型上没有父子关系的对象。eg:public class EqualT原创 2016-03-27 16:51:53 · 525 阅读 · 0 评论 -
JAVA Static关键字理解
JAVA Static关键字理解原理有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为s转载 2016-04-15 15:02:48 · 481 阅读 · 0 评论 -
快速排序
快速排序算法介绍快速排序和归并排序都使用分治法来设计算法,区别在于归并排序把数组分为两个基本等长的子数组,分别排好序之后还要进行归并(Merge)操作,而快速排序拆分子数组的时候显得更有艺术,取一个基准元素,拆分之后基准元素左边的元素都比基准元素小,右边的元素都不小于基准元素,这样只需要分别对两个子数组排序即可,不再像归并排序一样需要归并操作。基准元素的选取对算法的效率影响很大,最好的情况原创 2016-04-16 14:43:07 · 841 阅读 · 0 评论 -
First Bad Version Leetcode
题目:You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed bas原创 2016-05-05 15:23:15 · 564 阅读 · 0 评论 -
Java线程池详解
在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。一、简介线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeU原创 2016-05-17 11:48:35 · 477 阅读 · 0 评论 -
HashMap实现原理分析
注:此文为转载,原文地址:点击打开链接1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间转载 2016-03-30 09:30:38 · 403 阅读 · 0 评论 -
输入一个集合,输出这个集合的所有子集
package cn.edu.bupt.sherry;import java.util.ArrayList;import java.util.Scanner;public class Test { /* * 二级制 001 ——> index = 0 {list.get(0)} */ public static ArrayList> getSubsets2(ArrayList原创 2016-05-09 21:28:42 · 3980 阅读 · 0 评论 -
递归算法应用值判断字符串是否为回文
/* * 判断一个字符串是否是回文; */public class Palindrome { public static boolean isPalindrome(String s,int i,int j){ if(i > j) throw new IllegalArgumentException(); if(i == j) return true; else{原创 2016-04-03 15:27:52 · 3835 阅读 · 0 评论 -
Hash
最近面试过程中两次被问到HashCode以及Java JDK中对Hash的实现,下面总结一下关于Hash的一些基础知识:1、什么是Hash?hash函数:Hash,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。原创 2016-04-02 11:28:26 · 629 阅读 · 0 评论 -
CentOS中JAVA_HOME的环境变量设置
vim /etc/profileexport JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_H原创 2015-01-19 11:01:40 · 1283 阅读 · 0 评论 -
Java中的Set,List,Map的区别
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wordinput/archive/2010/01/22/5223876.aspx 对JAVA的集合的理解是想对于数组 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.转载 2015-01-20 16:10:12 · 591 阅读 · 0 评论 -
TreeSet
此文为转载:转载出处:点击打开链接TreeSet是依靠TreeMap来实现的。TreeSet是一个有序集合,TreeSet中的元素将按照升序排列,缺省是按照自然排序进行排列,意味着TreeSet中的元素要实现Comparable接口。或者有一个自定义的比较器。我们可以在构造TreeSet对象时,传递实现Comparator接口的比较器对象。import java.util.Iter转载 2015-01-22 13:30:09 · 731 阅读 · 0 评论 -
Restlet学习笔记1
实现HelloWorld最简单实例1、下载org.restlet.jar包。2、第一个HelloWorld程序。先写资源类(相当于我们之前的Servlet):package com.zr.restlet.demo01;import org.restlet.resource.Get;import org.restlet.resource.ServerResource;pub原创 2015-01-23 14:24:24 · 863 阅读 · 0 评论 -
Java Eclipse log4j配置
在project下新建一个文件,log4j.properties文件中加入以下内容:# log4j configuration used during build and unit testslog4j.rootLogger=INFO,stdoutlog4j.threshhold=ALLlog4j.appender.stdout=org.apache.log4j.ConsoleApp原创 2015-09-17 14:01:23 · 1357 阅读 · 0 评论 -
Ant编译打jar包 build.xml
<!-- 工程目录结构 project |-bin |-src |-lib |-out |-build.xml -->原创 2015-09-22 10:33:16 · 7179 阅读 · 0 评论 -
Java多线程机制
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx程序、进程和线程: 程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执转载 2016-03-30 11:30:02 · 458 阅读 · 0 评论 -
集合类的体系结构
原文地址:点击打开链接1. Collections(工具类) 和 Collection(集合顶层接口) 的区别首先, “Collection” 和 “Collections” 是两个不同的概念. 从下面几幅图可知,“Collection”是集合继承结构中的顶层接口,而 “Collections” 是提供了对集合进行操作的强大方法的工具类.图12. Collection继转载 2016-03-31 10:28:47 · 1788 阅读 · 0 评论 -
JAVA GC算法
GC判断对象是否存活算法1> 引用计数算法2> 根搜索算法(GC Root)GC垃圾收集算法1> 标记清除算法(Mark-Sweep):分为标记和清除两个阶段,首先标记出可以回收的对象,标记完后统一回收。缺点如下: a) 效率低:标记和清除过程效率都不高; b) 空间问题:清除之后产生大量不连续的内存碎片。转载 2016-03-31 11:39:23 · 550 阅读 · 0 评论 -
HashMap,LinkedMap,TreeMap的区别
原文地址:点击打开链接HashMap,LinkedHashMap,TreeMap都属于MapMap 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。 HashMap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Nu转载 2016-03-31 16:33:14 · 5002 阅读 · 0 评论 -
HashCode和equal方法
equals()反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。而hashCode()是对象或变量通过哈希算法计算出的哈希值。之所以有hashCode方法,是因为在批量的对象比较中,hashCode要比equals来得快,很多集合都用到了hashCode,比如HashTable。 两个obj,如果equals()相等,hashCode原创 2016-03-31 21:42:27 · 545 阅读 · 0 评论 -
ConcurrentHashMap原理详解
下面这部分内容转载自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。因此Java5.0开转载 2016-05-20 16:15:58 · 11590 阅读 · 1 评论