javase基础学习
文章平均质量分 69
l55iuming
这一天我来了,确实来了
展开
-
什么时候使用静态
什么时候使用静态?要从两方面下手:因为静态修饰的内容要有成员变量和函数。 什么时候定义静态变量(类变量)呢?当对象中出现共享数据时,该数据被静态所修饰。对象中的特有数据要定义成非静态存在于堆内存中。 什么时候定义静态函数呢?当功能内部没有访问到非静态数据(对象特有数据),那么该功能就可以定义成静态的;例如:class Person{ String原创 2015-07-09 16:02:15 · 1008 阅读 · 0 评论 -
内部类
内部类的访问规则:1:内部类可以直接访问外部类中的成员,包括私有。 之所以可以直接访问外部类的成员,是因为内部类中持有了一个外部类的引用,(外部类名 . this . +...) Outer.this.2:外部类要访问内部类,必须创建内部对象; 访问格式:1,当内部类定义子在外部类的的成员位置上,而且非私有,可以在外部其他类中,可以直接建立内原创 2015-07-12 20:31:33 · 348 阅读 · 0 评论 -
抽象(继承)
当多个类中出现了相同功能但功能主体不同 ,这时可以进行向上抽取,这时,只抽取功能定义,而不抽取功能主体; 抽象:看不懂。抽象类特点:1:抽象方法一定在抽象类中。2:抽象方法和抽象类必须被abstract关键字修饰3:抽象类不可以用new创建对象,因为抽象方法没意义4:抽象类中的方法要被覆盖,必须有子类函数复写所有的抽象方法后,建立子类的对象调用; 如果子类只覆原创 2015-07-11 09:23:57 · 687 阅读 · 0 评论 -
接口
接口:初期理解,可以认为是一个特殊的抽象类 当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。class用于定义类interface 用于定义接口. 接口定义是,格式特点:1:接口中常见定义:常量、抽象方法。2:接口中的成员都有固定修饰符。常量:public static final方法:public abstract原创 2015-07-11 15:53:18 · 594 阅读 · 0 评论 -
多态
多态:可以理解为事物存在的多种体现形态。例如:人:男人、女人;动物:猫、狗、猪等; 1:多态基本体现; 父类的引用指向了自己的子类对象; 父类的引用也可以接受自己的本类对象;2:多态的前提; 必须类与类之间有关系,要么继承要么实现; 通常还有一个前提:存在覆盖;3:多态的好处; 多态的出现大大的原创 2015-07-11 19:18:01 · 388 阅读 · 0 评论 -
内部类2
内部类什么时候用:当描述事物时,事物的内部还有事物,该事物用内部类来描述。因为内部事物在使用外部事物的内容。原创 2015-07-12 21:45:17 · 377 阅读 · 0 评论 -
匿名内部类
匿名内部类:1:匿名内部类其实就是内部类的简写格式。2:定义匿名内部类的前提: 内部类必须是继承一个类或者实现接口;3:匿名内部类的格式:new 父类或者接口(){定义子类的内容}4:其实匿名内部类就是一个匿名子类对象,而且这个对象有点胖,可以理解为带内容的对象;5:匿名内部类中定义的方法最好不超过3个; abstract class AbsDemo原创 2015-07-13 09:55:20 · 410 阅读 · 0 评论 -
Java基础学习之多线程
进程:是一个正在执行中的程序。 每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元线程:就是一个独立的控制单元。 线程在控制着进程的执行。 一个进程中至少有一个线程; 1:如何在自定义的代码中自定义线程呢?原创 2015-07-15 21:10:31 · 493 阅读 · 0 评论 -
几种特殊的多线程函数
静态 如果同步函数被静态修饰后,使用的锁是什么呢?通过验证,发现不是this因为静态方法中不可以定义this静态进内存时,内存中没有本类对象,但是一定有给类对应的字节码文件对象。类名:class 该对象的类型时Classclass Ticket implements Runnable{ private int tick=100; public void r原创 2015-07-17 16:56:54 · 488 阅读 · 0 评论 -
多线程间的通讯之等待唤醒机制
线程间的通讯:其实就是多个线程在操作同一个资源。但是操作动作不同 例子:需求:模拟简单卖票系统(输入一个人,紧接着输出一个人) class Res{ String name; String sex;}class Input implements Runnable{ private Res r; private int t=0; In原创 2015-07-18 09:31:57 · 605 阅读 · 0 评论 -
多线程同步(Lock)
实例 模仿生产者和消费者的模式 先来个两个线程的class ProducerConsumerDemo{ public static void main(String[] args) { Res r=new Res(); Pro in=new Pro(r); Cou out=new Cou(r); Thread t1=new Thread(in);原创 2015-07-18 20:57:58 · 490 阅读 · 0 评论 -
线程几种方法
线程停止:stop方法已经过时;只有一种,run方法结束。开启多线程运行,运行代码通常是循环结构。只要控制住循环,就可以让run方法结束,也就是线程结束;特殊情况:当线程处于冻结状态时;就不会读取到标记,那么线程就不会结束。当没有指定的方式让冻结的线程恢复到运行状态时,这是需要对冻结进行清除。强制让线程恢复到运行状态中来,这样就可以操作标记让线程结束。原创 2015-07-19 09:07:33 · 417 阅读 · 0 评论 -
String类(判断和获取)
class StringDemo{ public static void main(String[] args) { String s1="abc";//s1是一个类类型变量,所以“abc”是一个对象 //字符串最大的特点:一旦初始化就不可以被改变 s1="kk"; System.out.println(s1); }}打印的是KK,不是变了吗原创 2015-07-19 15:51:30 · 797 阅读 · 0 评论 -
继承(代码体现)
子父类出现后类中成员的特点;类中成员:1:变量如果子类中出现非私有的同名成员变量时子类要访问本类中的变量,用this子类要访问父类中的同名变量,用super super和this的使用几乎一致;this代表的是本类对象的引用,super代表的是父类对象的引用2:函数当子类出现和父类一模一样的函数时当子类对象调用该函数,会运行子类函数的内容如同父类的函原创 2015-07-10 20:59:41 · 1093 阅读 · 0 评论 -
模块方法设计模式
需求:获取一段程序运行时间原理:获取程序开始和结束的时间并相减即可获取时间:System.currentTimeMillis();原创 2015-07-11 11:05:20 · 506 阅读 · 0 评论 -
封装(面向对象)
class Person{ int age; void speak() { System.out.println("age="+age); }}class PersonDemo{ public static void main(String[] args) { Person p=new Person(); p.age=55; p.sp原创 2015-07-08 21:06:33 · 396 阅读 · 0 评论 -
排序
class ArryDemo{ public static void main(String[] args) { int[] a=new int[]{1,2,3,4,5,6}; selectsort(a); for(int i=0;i {if(i!=a.length-1) System.out.print(a[i]+","); else Sy原创 2015-07-08 20:58:19 · 315 阅读 · 0 评论 -
进制转换(数据存储)
class ArrDemo4{ public static void main(String[] args) { tobin(0); toba(60); tohex(-6); } //十进制转二进制 /*public static void tobin(int x) { StringBuffer sb=new StringBuffer原创 2015-07-08 21:03:24 · 445 阅读 · 0 评论 -
构造函数
/*构造函数特点:1.函数名与类名相同2.不用定义返回值类型3.不可以写return语句作用:给对象进行初始化注意:1.默认构造函数的特点。2.多个构造函数是以重载形式存在的。*//*对象一建立就睡调用与之对应的构造函数。构造函数的作用:可以用于给对象进行初始化*/class Person{ Perso原创 2015-07-08 20:56:15 · 392 阅读 · 0 评论 -
this的应用
//给人定义一个功能,用来判断是否是同龄人;class Person{ private int age; private String name; Person(int age) { this.age=age; } public boolean compare(Person p) { return this.age==p.age;//!原创 2015-07-09 10:06:56 · 589 阅读 · 0 评论 -
构造函数的变量命名
class Person{ private String name; private int age; Person() { System.out.println("name="+name+",age="+age); cry(); } Person(String n)//注意!!!! { name=n; System.out.println(原创 2015-07-09 08:57:26 · 1281 阅读 · 0 评论 -
静态
静态:static。用法:是一个修饰符用于修饰成员(成员变量,成员函数)当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用。class Person{ String name;//成员变量,实例变量 static String country="cn";//静态成员的变量,类变量 int age; public void show()原创 2015-07-09 15:21:24 · 483 阅读 · 0 评论 -
帮助文档的制作(程序说明书)
开始制作程序说明书,Java的说明书通过文档注释来完成。先注释/**这是一个可以对数组进行操作的工具类,该类中提供了:获取最值,排序等功能;@author 刘明@version V1.123*/pulic class ArrTool//必须用public修饰{ /** 空参数构造函数 */ private ArrTool(){} /**原创 2015-07-09 20:21:43 · 1513 阅读 · 0 评论 -
单例设计模式
设计模式:解决某一类问题最行之有效的方法。Java中有23中设计模式:单例设计模式:解决一个类在内存只存在一个对象 想要保证对象唯一1:为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象2:还为了让其他程序访问到该类对象,只好在本类中,自定义一个对象;3:为了方便其他城促对自定义对象的访问,可以对外提供一些访问方式。 代码体现1:将构造函数私原创 2015-07-10 09:39:50 · 560 阅读 · 0 评论 -
静态的应用
静态的应用。每一个应用程序中都有共性的功能,可以将这些功能进行抽取,独立封装,以便复用;1.先写一个工具类Java文件class ArrTool{ public int Getmax(int[] arr) { int max=0; for(int x=0;x<arr.length;x++) { if(arr[x]>arr[max]) ma原创 2015-07-09 16:28:20 · 643 阅读 · 0 评论 -
静态代码块
静态代码块:格式:static{ 静态代码块中的执行语句。}特点:随着类的加载而执行,只执行一次。并优先于主函数;用于给类进行初始化class StaticCode{ static { System.out.println("a"); }}class StaticCodeDemo{ static { S原创 2015-07-09 21:16:22 · 425 阅读 · 0 评论 -
继承概述
例如:当我们需要描述学生和工人时,我们发现二者都要进行名字,年龄的描述;将学生和工人的共性描述提取出来(姓名。年龄描述),单独进行描述;只要让学生和工人与单独描述的这个类有关系,就可以了; 继承:1.提高了代码的复用性;2.让类与类之间产生了关系,有了这个关系,才有了多态的特性;class Person{ String name; int age;}原创 2015-07-10 19:59:23 · 557 阅读 · 0 评论 -
Set,List,Map的区别
Set,List,Map的区别java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存转载 2015-10-20 20:07:21 · 342 阅读 · 0 评论