- 浏览: 120278 次
- 性别:
- 来自: 广西
最新评论
-
greemqqran:
这方法 源码,是怎么的哦?
可变参数,数组与集合之间的转换 -
greemqqran:
Arrays.asList
可变参数,数组与集合之间的转换 -
ricoyu:
引用? super E:接收的是E类型对象应该是: ? sup ...
泛型-
文章列表
/*
停止线程的方式一:
定义结束标记。
因为线程在run方法中运行。只要允许代码结束,线程即可停止。
而run方法中通常会定义循环,只要控制住循环即可。
方式二:
当线程进入到了冻结状态,不能读到结束标记时,
可以通过interrupt()方法,将冻结状态强制清除。
让线程恢复到运行状态中来。就可以读取结束标记。
*/
class StopThread implements Runnable
{
private boolean b = true;
public synchronized void run()
{
System.out.pri ...
/*
多线程间的通讯。
多个线程在操作同一个资源。
但是操作的方式却不一样。
这里我们要给用同一资源作为锁,也就是监视器。Res r
*/
class Res
{
String name;
String sex;
boolean b = false;
}
class Input implements Runnable
{
Res r ;
Input(Res r)
{
this.r = r;
}
public void run()
{
int x = 0;
while(true)
{
s ...
自定义多线程解析线程工作原理
- 博客分类:
- j2se
/*
interface MyRunnable
{
public void code();
}
class MyThread implements MyRunnable
{
public void code(){}
}
class Demo extends MyThread
{
public void code(){fucntion();}
public void function(){}
}
class Haha extends Hehe implements MyRunnable
{
public void code(){met ...
多线程:
进程:正在进行中的程序。
线程:进程中一个控制单元。
一个进程最少有一个线程。
当有多个线程时,可以提高运行效率。如:下载工具。
特性:随机性。
什么时候使用多线程呢?
当多部分程序需要同时运行时,就要使用多线程来解决。
线程创建的方式:
通过Thread类对线程进行描述。
所以只要创建Thread类的对象即可创建控制单元。
但是如何让创建的控制单元来运行我们指定的代码呢?
为了让创建的控制单元和自定义的线程运行代码有关联。
Thread类提供了一个存放线程代码的位置-run().
方式一:继承T ...
阶段总结:
面向对象:
1,面向对象是一种符合现实生活中的思想。
2,面对对象将复杂的事情简单化。
3,面向对象将程序员从执行者变成了指挥者。
这三点可以用于理解面对对象,也可以用于面试。
相对于面向过程而言的,
把大象放进冰箱里。
面向过程:
1,定义开的方法,定义存放的方法,定义关闭的方法。
强调的是这些动作。
面向对象:
强调的是被操作的事物,
先描述冰箱,描述大象。
冰箱中定义了开,放,关的行为。
只要指挥冰箱做事情,调用它的开方法,在调用放的方法,将大象作为参数存入,在调用关的方法。
程序员就从执行者,变 ...
一个多态低耦合的设计
- 博客分类:
- j2se
class Person
{
String name;
}
class Father extends Person
{
//String name;
void da(Children c)
{
c.beiDa();
}
}
abstract class Children extends Person
{
//String name;
abstract void beiDa();
}
class Son extends Children
{
void beiDa()
{
pao();
}
v ...
异常Exception
- 博客分类:
- j2se
异常:
其实就是对不正常情况的描述。
在描述过程分成两个部分。一部分可以处理,一部分一般情况其不用处理。
通过向上抽取,形成异常体系。
Throwable
|--Error:不需要编写处理代码。需要对程序进行修改。
|--Excep ...
多态:
好处:提高了程序的扩展性。
思想:通过面向对象的思想,可以指挥对象做事情,如果对象多了,指挥每一个对象,就变得很麻烦。
如何将麻烦的事情简单化呢?对这些对象进行分析并向上抽取,出现了共性类型后,就可以指挥共性类型做事情。
那么,只要是这种共性类型的子类,就可以被指挥。
在程序上的体现:
父类或者接口引用指向了自己的子类对象。
父类或者接口引用接收自己的子类对象。
应用条件:
1,类与类之间必须要有关系。
2,通常会出现覆盖操作。
局限性:通过多态可以提供扩展,可以在前期预先调用后期的内容,
但是不可以调用后 ...
------------------------------------------------------
Object :它是所有类的父类。
boolean equals(Object obj):比较两个对象是否相同,比较的是内存地址值。
String toString():将对象变成字符串。默认的是形式:类名@对象哈希值
Class getClass():返回该对象所属的类文件对象。Class类,可以通过类中的方法,获取类中定义的成员,如方法,变量等。
int hashCode():返回对象的哈希值,哈希值就是对象在内存中存放位置。
void fin ...
-----------------------
instanceOf关键字:
判断一个对象是否所属于一个类或者接口。
-----------------------
/*
匿名内部类:
其实就是内部的简化形式。
前提:
内部类必须继承或者实现外部类或接口。
格式:
new 父类&接口(){};
其实就是一个子类对象。有点胖。
*/
abstract class Test
{
abstract void show();
abstract void show1();
}
class Outer
{
int x = 3;
/*
class Inner extends Test
{
void show()
{
System.out.println(x);
...
/*
主板,主板可以插入网卡。
直接描述主板以及网卡,
并在主板中使用该网卡,
这样的设计虽然当然可以应用,但缺少扩展性。比如又来一个声卡该如何呢?难道要修改主板不成?
找这些事物的共性。
主板是为了扩展自己的功能,而是提高后期的可维护性。
先对这些板卡的共性进行抽取。
定义一个规则,这个规则出现的就可以降低主板和板卡直接的耦合性。
在描述主板的时候,可以预先使用该规则。
无论后期出现什么样的出现什么样的板卡,只要该板卡符合了这个规则,主板就可以使用这个板卡。
*/
interface PCI
{
void open() ...
继承:
1,提高了代码的复用性。
2,类与类之间产生了关系,关系的出现,就是多态的由来。
java只支持单继承,不支持不多继承。
原因:当出现多个类中有相同方法时,子类不确定调用的是哪一个。
其实就是父类 ...
/**
这是一个数组工具类,其中定义了操作数组常见的功能。
@author 张三
@version V1.0
*/
public class ArrayTool
{
/**
获取指定数组的最大值。
@param arr 接收一个整形数组。
@return 返回该数组的最大值
*/
public int getMax(int[] arr)
{
int max = arr[0];
for(int x=1; x<arr.length; x++)
{
if(arr[x]>max)
max = ar ...
可以多实现,不可以多继承---安全原因
- 博客分类:
- j2se
/*
abstract class Demo
{
abstract void show();
abstract void func();
}
*/
interface Demo
{
public static final int x = 4;
public abstract void show();
public abstract void func();
}
class DemoImpl implements Demo
{
public void show(){}
public void func(){}
}
class ...