`
李灵晖-raylee
  • 浏览: 129692 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论
文章列表
百度版: 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索
在说之前先普及一下线程是什么? 线程:说白了就是一个任务片段 进程:是一个具有独立功能的程序关于某个数据集合的一次运行活动,一个进程有一个或者多个线程 线程与进程的本质区别就是有么有数据共享空间,线程之间可以共享数据,进程不可以 下面进入主题:线程间的同步 由于现在业务流程增加,业务节点也增加,使用业务的人员也同时增加,这个时候就不可避免的出现并发问题,多个线程同时访问操作某一个数据单元 我们以银行转账为例说明,下面先上代码: 建立一个银行的类,里面主要包括三个方法,一个是转账,一个是得到现有银行存款总数,一个是得到现在存户数量 public class Bank { ...
今天我们来看一下arraylist的存储开销,因为在项目当中,我尝试了一个非常大的arraylist,然后内存爆了 所以我看了下源码,原来arraylist的存储开销是比较大的,先上代码 import java.util.ArrayList; public class Test { public static void ma ...
今天说说集合的iterator迭代器与集合下标的使用 先上代码 import java.util.ArrayList; import java.util.Iterator; public class Test { public Test() { // 初始化List addItemToList(); } private ArrayList<String> list = new ArrayList<String>(); private void addItemToList() { for (int i = 0; i < 5; i ...
为什么需要使用泛型? 1.代码复用 2.保证类型安全 3.编程的便利 第一部分,先说说代码复用 1)建立一个Animal的父类 package com.ray.test; public class Animal { private String name="Animal"; public String getName() { return name; } public void setName(String name) { this.name = name; } } 2)建立连个Animal的子类Cat和Dog p ...
这里面涉及到两个类,一个是person类,一个是测试类test 首先我们说到的是浅克隆,对某个对象实施Clone时对其是一无所知的,它仅仅是简单地执行域对域的copy,如果是基本数据类型(int,float,char等)到没什么问题,基本遇上如string,Integer等不可变对象的时候也没有什么问题,但是如果遇上了date这个可变对象,或者是自己定义的可变对象,他只是简单的复制一下引用这些可变对象,而不是把这些可变对象再一次的复制 先上person类,这里面虽然是实现Cloneable接口,但是里面没有重写方法,只是super了一下就算了 package com.ray ...
其实,java在自动装箱和自动拆箱的过程里面,留了不少的坑给我们,我们下面将以integer这个类为基础讨论一下 其实这里面主要涉及的是两点 1.当使用Integer x=1,这样的方式来赋值的时候,其实,编译器当那个1是String,然后需要通过valueof的方法转换过来,但是在转换的过程中,他为了优化速度,使用了我们所不知道的缓存,因为在这里会出现一些坑 2.Integer类里面重写了equals方法,里面不但对比对象,而且还对比里面的值 下面先上代码:(请仔细观看注释,里面已经提供了上面所述两个方法的源码) package com.ray.object; /** * ...
泛型数组列表,主要是为了解决运行时动态更改数组的问题 平常我们会定义一个部门里面的人员的一个数组, 但是在实际业务当中,这个数组的大小往往是不确定的, 如果定义过大,那么会浪费空间,定义过小,又不够用, 因为为了解决运行时动态更改数组的问题,我们提出下面的解决方案。 package com.ray.object; import java.util.ArrayList; /** * 泛型数组列表 ,解决运行时动态更改数组的问题 * * @author ray * @since 2015-05-04 * @version 1.0 * */ public cla ...
equils方法的特性: 1.自反性,对于任何非空引用x,x.equals(x)返回true 2.对称性,对于任何引用x,y,x.equals(y)返回true,那么y.equals(x)返回true 3.传递性,对于任何应用x,y,z,如果x.equals(y)回返true,以及x.equals(z)回返true,则y.equals(z)回 ...
抽象类:具有抽象方法的类,需要使用abstract关键字修饰 关系图 下面上代码 package com.ray.testobject; /** * 抽象类 * * @author ray * @since 2015-05-02 * @version 1.0 * */ public abstract class Person { public abstract void getDescription(); } package com.ray.testobject; /** * 实现类 * * ...
java-final关键字在属性域的使用 package com.ray.testobject; /** * final在属性域的使用 * * @author ray * @since 2015-05-01 * */ public class Person { private final String name = "ray"; public String getName() { return name; } // private void set(String name) { //这一句报错 // this.name=name; / ...
先上代码 package com.ray.testobject; /** * 调用方法的过程 * * @author ray * @since 2015-05-01 * */ public class Person { public void say() { System.out.println("i am a person"); } public void say(int age) { System.out.println("i am " + age); } public void say(String n ...
先贴上代码 <pre name="code" class="java">package com.ray.object; /** * 父类引用子类对象 * * @author ray * @since 2015-04-30 * @version 1.0 * */ public class Test { class Person { public void say() { System.out.println("i am a person"); } } class Man ...
在下面的代码中,展示的是静态导入的一些方便与不便 如Math类这种更方面辨认的、Calendar类这种需要写很多东西的类,可以使用静态导入,从而降低读的门槛 但是对于print这个方法,基本上是不会有人这么干的了 package com.ray.object; import static java.lang.Math.pow; import static java.util.Calendar.DAY_OF_MONTH; import static java.lang.System.out; /** * 静态导入 * * @author ray * @since 201 ...
package com.ray.object; /** * 不用main方法,也可以打印Hello World! * * @author ray * @since 2015-04-29 * @version 1.0 * */ public class Person { static { System.out.println("Hello World!"); System.exit(0); } // 由于使用ide,有main方法执行更方便 public static void main(String[] args) { } } ...
Global site tag (gtag.js) - Google Analytics