![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
cainiao_zhangxl
好好学习编程。
展开
-
字节流 字符流
输入字节流:InputStream 所有输入字节流的基类。抽象类。 FileInputStream读取文件的输入字符流 BufferedInputStream 缓冲输入字节流。该内部类其实就是一个维护了一个8kb字节而已。该类出现的目的就是为了提高读取文件的效率。输出字节流:OutputStream FileOutputStream 想文翻译 2016-10-23 11:03:15 · 229 阅读 · 0 评论 -
字符串反转
import java.util.Comparator;import java.util.Iterator;import java.util.TreeSet;class StrComparator implements Comparator{ public int compare(String s1,String s2) { return s2原创 2016-10-20 09:33:41 · 251 阅读 · 0 评论 -
用Collections.sort方法对list排序有两种方法
第一种是list中的对象实现Comparable接口,如下:http://blog.csdn.net/zxy_snow/article/details/7232035/** * 根据order对User排序 */ public class User implements Comparable{ private St转载 2017-05-01 18:06:19 · 757 阅读 · 0 评论 -
cookies和session
1.cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据。 2.session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session其实是利用Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期转载 2017-08-08 09:56:57 · 157 阅读 · 0 评论 -
hashmap
HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap的存取。一、定义 HashMap实现了Map接口,继转载 2017-08-09 19:20:54 · 169 阅读 · 0 评论 -
wait 和sleep的区别
(1)sleep()方法,属于Thread类中的,而wait()方法,属于Object类(2)当调用sleep()方法时指定休眠的时间,让出cpu给其他线程,但是它的监控状态依然保持着,当指定的时间到了又会自动恢复就绪状态,在调用sleep()方法的过程中,线程不会释放锁(3)当调用wait()方法的时候,线程会放弃锁,进入等待状态,只有针对此对象调用notify()方法后此线程才会被唤醒原创 2017-08-14 16:03:42 · 178 阅读 · 0 评论 -
Object有哪些公用方法?
Object是所有类的父类,任何类都默认继承Object。clone保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常equals在Object中与==是一样的,子类一般需要重写该方法hashCode该方法用于哈希查找,重写了equals方法一般都要重写has原创 2017-08-14 16:14:26 · 262 阅读 · 0 评论 -
Arraylist vector linkedList
从图中可以看出,这三者都实现了 List 接口,所有使用方式也很相似,主要区别在于因为实现方式的不同,所以对不同的操作具有不同的效率。 ArrayList 是一个可改变大小的数组,当更多的元素加入到ArrayList中时,其大小将会动态地增长,内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组。 LinkedList 是一个双链表,在添加和删除元素时转载 2017-08-14 16:18:49 · 148 阅读 · 0 评论 -
应用类型
1.强引用 以前我们使用的大部分引用实际上都是强引用,这是使用最普遍的引用。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。2.软引用(SoftReference) 如果一原创 2017-08-14 16:28:53 · 877 阅读 · 0 评论 -
String stringBuffer stringbuilder
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常原创 2017-08-14 16:58:30 · 165 阅读 · 0 评论 -
集合
Collection 接口的接口 对象的集合 ├ List 子接口 按进入先后有序保存 可重复 │├ LinkedList 接口实现类 链表 插入删除 没有同步 线程不安全 │├ ArrayList 接口实现类 数组 随机访问原创 2017-08-14 17:16:17 · 147 阅读 · 0 评论 -
J2SE基础面经
J2SE基础:1. 九种基本数据类型的大小,以及他们的封装类。2. Switch能否用string做参数?3. equals与==的区别。4. Object有哪些公用方法?5. Java的四种引用,强弱软虚,用到的场景。6. Hashcode的作用。7. ArrayList、LinkedList、Vector的区别。8. String、StringBuffer与St原创 2017-08-14 18:01:01 · 231 阅读 · 0 评论 -
进程和线程的简易理解
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。转载 2017-08-14 18:23:36 · 178 阅读 · 0 评论 -
sychronized、ReentrantLock、lock区别
同步格言:如果你向一个变量写值,而这个变量接下来可能会被另一个线程所读取,或者你从一个变量读值,而它的值可能是前面由另一个线程写入的,此时你就必须使用同步一.什么是sychronizedsychronized是Java中最基本同步互斥的手段,可以修饰代码块,方法,类.在修饰代码块的时候需要一个reference对象作为锁的对象.在修饰方法的时候默认是当前对象转载 2017-08-14 18:48:08 · 850 阅读 · 0 评论 -
23种设计模式
设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式转载 2017-08-15 19:56:01 · 160 阅读 · 0 评论 -
JAVA 折半查找 如果有返回角标 如果没有返回要插入的位置。
package Test;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class listTest1 { public static void main(String[] ar原创 2016-10-19 14:47:45 · 756 阅读 · 0 评论 -
班级 学号 姓名 map集合映射
import java.util.HashMap;import java.util.Iterator;public class MapTest4 { public static void main(String[] args) { // TODO Auto-generated method stub HashMap> czbk原创 2016-10-16 20:18:14 · 843 阅读 · 0 评论 -
关于接口和多态
interface PCI{ public void open(); public void close();}class MainBoard{ public void run() { System.out.println("mainboard run"); } public void use原创 2016-09-19 19:47:12 · 244 阅读 · 0 评论 -
异常总结
/*异常的体系 Throwable |——Error |--Exception |--RuntimeException异常体系的特点: 异常体系中的所有类以及建立的对象都具有可抛性 也就是说可以被throw和throws关键字所操作。 只有异常体系具备这个特点 throw throw在函数内,用于抛出异原创 2016-09-22 10:17:49 · 197 阅读 · 0 评论 -
自定义异常
自定义异常: 定义类继承Exception或者Run timeException 1,为了让该定义具备可抛性。 2,让该类具备操作异常的共性方法。 当要定义自定义异常的信息时,可以使用父类已经定义好的功能。异常信息传递给构造函数。class MyException extends Exception{MyException (Strin原创 2016-09-22 10:21:43 · 290 阅读 · 0 评论 -
n从1开始,每个操作可以选择对n加1或者对n加倍,想获取的2016,最少需要多少个操作。
以上是十进制转二进制的过程。反过来看就能得到结果。 1+1+1=3 (2次)3+3+1=7 (2次)7+7+1=15 (2次)15+15+1=31 (2次)31+31+1=63 (2次)63+63=126 (1次)126+126=252 (1次)252+252=504(1次)504+504=1008(1次)1008+1008=2016(1次)一原创 2016-09-22 14:03:26 · 9340 阅读 · 0 评论 -
包之间的权限访问总结
/* 总结;包和包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰 * 不同包的子类可以访问父类中的protected权限修饰的成员 * 包和包之间可以使用的权限只有两种:public Protected * public protected default private * 同一个类中 ok原创 2016-09-22 19:24:44 · 303 阅读 · 0 评论 -
单例设计模式总结
饿汉式class Single{pivate static final Single s=new Single();private Single(){}public statc Single getInstance(){return s;}}懒汉式Class Single{private static Single s=null;pr原创 2016-09-28 14:39:27 · 156 阅读 · 0 评论 -
延迟加载的单例设计模式
class Single{private static Single s=null;private Single(){}private static Single getInstance(){if(s==null)synchronized(Single.class){if(s==null)s=new Single();}return s;原创 2016-09-28 14:51:49 · 294 阅读 · 0 评论 -
Linklist模仿队
linkList模仿队列package Test;import java.util.LinkedList;class dulTest{ private LinkedList lt; dulTest() {lt=new LinkedList();} public void ltAdd(Object obj) {原创 2016-10-09 10:24:50 · 163 阅读 · 0 评论 -
Linkedlist模仿栈
package Test;import java.util.LinkedList;class dulTest{ private LinkedList lt; dulTest() {lt=new LinkedList();} public void ltAdd(Object obj) { lt.addFirst(o原创 2016-10-09 10:26:22 · 178 阅读 · 0 评论 -
除去集合中的重复数据
package Test;import java.util.ArrayList;import java.util.Iterator;import java.util.List;class ArrayListTest{ public static void main(String[] args) { ArrayList al=new ArrayL原创 2016-10-09 11:54:15 · 290 阅读 · 0 评论 -
去除重复元素
package Test;import java.util.ArrayList;import java.util.Iterator;/*将自定义对象多为元素存到ArrayList集合中,并去除重复元素。比如:存人对象。同姓名,同年龄,视为同一个人。为重复元素。思路:1,对人描述,将数据封装进人对象。2,定义容器,将人存入。3,取出。*/原创 2016-10-10 10:09:23 · 313 阅读 · 0 评论 -
Hashset 和ThreeSet
set:无序,不可以重复元素。 | -----HashSet:数据结构是哈希表,线程是非同步的。 保证元素唯一性的原理:判断元素的hashCode值是否相同。 如果相同,还会继续判断元素的equals方法,是否为true。 | -----ThreeSet:可以对Set集合中的元素进行排序。原创 2016-10-10 10:44:54 · 1409 阅读 · 0 评论 -
生产者 消费者 问题
class ProducerConsumerDemo{ public static void main(String[] args) { Resource r=new Resource(); producer s=new producer(r); resourcer d=new resourcer(r); Thread t1=new Thre原创 2016-10-10 16:06:01 · 199 阅读 · 0 评论 -
获取字符串中字母出现的次数
import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.TreeMap;/* * 练习: * abccdefffffg获取字符串中字母出现的次数。 * 希望打印结果;a(1)b(2)…… * 通过结果发现,每个字母多有对应的次数。 * 说明字母和原创 2016-10-16 18:24:12 · 848 阅读 · 0 评论