java se基础知识
文章平均质量分 51
it苦行僧zhou
做一名it苦行僧,修炼自我
展开
-
java内存的分配方式
java有五个不容的地方存储数据1、寄存器:最快的存储器区,根据需求分配,位于处理器内部,不能直接控制2、堆栈:位于通用ram中,通过堆栈指针的上下移动来获取和释放内存,一般用于存放对象的引用和基本数据类型,java系统必须知道存放在 堆栈中所有项的确切生命周期,以便上下移动指针。3、堆:通用的内存池,用于存放所有的java对象(用new关键字创建的对象)4、常量存储...原创 2018-07-11 10:09:02 · 932 阅读 · 0 评论 -
java的static关键字
static关键字 static关键字确保它修饰的那个域或方法只有一份存储空间,不会与特定的实例关联在 一起。所有对象共享static修饰的域或方法。可通过类名(实例对象).static方法或成员变量来调用静态域或方法。 非静态域或方法不能直接调用,必须通过实例对象.成员变量(方法)进行调用。不能在静态方法里面直接使用非 静态成员变量(方法),要用实例对象.成员变量(方法)进行调用。...原创 2018-08-26 17:58:40 · 137 阅读 · 0 评论 -
java并发
一、基本的线程机制 并发编程使我们将程序划分为多个分离的,独立运行的任务。通过使用多线程机制,这些任务有独立线程驱动。 单个进程可以拥有多个并发执行的任务(即多个线程),cpu轮流为每个任务分配占用时间。 1、定义任务 任务有线程驱动,如何定义任务? 实现Runnable借口,并重写run()方法。 //一个实现Runnable的类 class MyRunnale implement...原创 2018-07-30 20:52:44 · 134 阅读 · 0 评论 -
java io
Java Io流的概念,分类,类图。 1.1 Java Io流的概念 java的io是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。在java中把不同的输入/输出源(键盘,文件,网络连接等)抽象表述为“流”(stream)。通过流的形式允许java程序使用相同的方式来访问不同的输入/输出源。stram是从起源(source)到接收的(sink)的有序数据。 注:java把...转载 2018-07-29 15:32:04 · 102 阅读 · 0 评论 -
字符串
1、String对象不可变 String对象的内容是不可改变的。String对象中每一个看起来会修改String的方法,实际上都是创建一个 全新的string对象。 2、重载“+”和StringBuilder 一个字符串每次和+号相连会自动把+后面的内容转化为字符串。 如String s="abc"+"de"+17; //得到字符串abcde17,这会带来性能问题,因为为了生成最终 ...原创 2018-07-26 22:43:48 · 171 阅读 · 0 评论 -
通过异常处理错误
1、异常定义 异常时指阻止当前方法或作用域继续执行的问题。 2、抛出异常 对于不能进行下去的异常情形,就必须从当前环境中抛出异常对象的引用,并在一个恰当的地方 来继续执行程序。 使用new在堆上创建一个异常对象,再用throw关键字把异常对象的引用抛出。 标准异常类有两个默认的构造器,一个是默认的构造器,一个是带字符串参数。 throw new Exception(); throw...原创 2018-07-26 11:08:36 · 209 阅读 · 0 评论 -
复用类
复用类的两种方法:组合和继承 组合:在新的类中产生现有类的实例 例 class A{ B b=new B(); } 继承:采用现有类的形式,并向其中添加新的代码。 继承相当于隐式地在子类中放入一个父类的子对象,每次调用子类的构造函数时,会先去调用 父类构造器完成初始化。如果父类的构造器是带参数的,需要用super关键字显式地调用。 ...原创 2018-07-15 10:11:51 · 159 阅读 · 0 评论 -
个人关于hashmap的一些总结
1、map以key-value形式存储数据。map的实现形式有hashmap,treemap,linkedhashmap等。 hashmap:map基于散列表实现,存储键值顺序和插入次序无关,优势在于查询速度快。 treemap:放入treemap中的值会根据key按照字母顺序排序,与插入顺序无关 linkedhashmap:类似于hashmap,查询速度稍慢,但迭代遍历速度快,存储值得顺序...原创 2018-08-26 18:02:25 · 201 阅读 · 0 评论 -
java实现比较功能的两种方式
一、实现java.lang.Comparable接口,使类具有天生的比较能力,只需实现一个compareTo()方法。 例子: class TestArray implements Comparable<TestArray> { int i; TestArray( int i) { this.i=i; } @Over...原创 2018-07-19 16:18:50 · 2761 阅读 · 0 评论 -
访问权限控制
1、原创 2018-07-13 16:08:33 · 182 阅读 · 0 评论 -
初始化和清理
1、在创建对象使用new关键字时,操作系统会为对象分配存储空间,并调用相应的构造器。 构造器分为有参和无参构造器。当有有参构造器时,系统就会调用有参构造器。 构造器是一种特殊的方法,没有返回值,且方法名和类名相同。 调用构造器只能在构造器的方法里面调用,在其他位置不能调用。 2、方法的重载 定义:位于同一个类, 方法名相同,但是形参的个数或者...原创 2018-08-26 18:02:05 · 193 阅读 · 0 评论 -
java控制执行流程
1、java不允许将一个数字当做布尔值使用,来进行流程的判断 如int a=0; if(a)这是不合规的2、控制流程有if-else,迭代(for循环,do-while循环,while循环)3、foreach语句 foreach适用于容器和数组,不必创建int变量去计数, float[] x=new float[]{1.1f,0.2f}; for(float f: x)...原创 2018-07-13 10:02:14 · 184 阅读 · 0 评论 -
String为什么不可改变?
什么是不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。 区分对象和对象的引用 对于Java初学者...转载 2018-07-17 20:40:21 · 10067 阅读 · 2 评论 -
持有对象
1、通过使用泛型可以在编译期防止将错误类型的对象放到容器中 例子:ArrayList<A> list=new ArrayList<A>(); list.add(new B());// 编译出错 向上转型也可用于泛型,如果一个类是A类的子类,则可放入A的容器中, class C extends A ...原创 2018-07-26 10:05:36 · 182 阅读 · 0 评论 -
java的操作符
算术操作符:+,-,*,/,%,其中整数的除法会直接去掉结果的小数位,不会四舍五入。自动递增递减:++,--,运算符放在数值前和后面是有区别的,放在前面,会先运算, 再生成值,放在后面,先取值再运算。关系操作符:>,<,<=,>=,==,!= ==和!=也可以用来比较对象的引用,而不是比较...原创 2018-07-12 10:55:12 · 184 阅读 · 0 评论 -
关于java集合的一些小结
。。。。。省略了需要引入的包 * collection接口的测试,collection包含了list和set接口。 * list:Arraylist,vector,linkedList。 * list是有序的,即集合里面的数据元素顺序和插入顺序是一致的,数据元素可以重复。 * ArrayList底层是用数组实现的,适用于查询,不适合增加数据元素和删除。 * vector和A...原创 2018-05-29 21:30:10 · 145 阅读 · 0 评论