Java全部基础
文章平均质量分 50
笔者在工作之余用了一个月从C#转型JAVA,并将自己的学习经验做了系统的总结。本系列博客从浅到深系统的介绍了笔者自己学习的整个过程,一共38篇,包含大量的demo都可以实现。适合刚入门者一步步跟着学习。
code farmer mqp
精进
展开
-
java基础の抽象类
我们从几个方面来分析java的抽象类:为什么,是什么,怎么用(代码网上太多了略)1为什么会有抽象类:当一个类被继承的种类很多以至于父类没有必要有具体的实现的时候,会把此父类抽象成抽象类2.什么是抽象类:1.abstract修饰抽象类1.1不能被实例化1.2抽象类有构造器(凡事类都有构造器)2.abstract修饰抽象方法2.1格式,没有方法体publicab原创 2016-04-26 10:39:13 · 396 阅读 · 2 评论 -
java的常用的dos命令
dir当前目录下的文件和文件夹md创建目录rd删除cd进入指定目录Cd..退回到上一级目录Cd\:退回到根目录del删除文件exit退出dos命令行Echo javase>1.doc创建一个文件并写入一些命令其中最后一个命令可以表明类的作者,版本号和一些参数说明文档注释被javadoc解释Javadoc -d mydoc -autho原创 2016-05-02 20:20:09 · 1198 阅读 · 0 评论 -
成员变量vs局部变量
相同点:遵循变量声明的格式有一定的作用域、都有初始化值不同点: 成员局部声明位置不同类里方法外方法内,方法形参部分,代码内修饰符4个public,pravite/protected/缺省没有,或者和所在的方法的修饰符一样初始化原创 2016-05-02 20:23:01 · 495 阅读 · 0 评论 -
eclipse使用技巧及常用快捷键
Ctrl+F11运行Ctrl+Shift+O将缺少的import语句加入Ctrl+1快速修复(最经典的快捷键,就不用多说了)Ctrl+L定位在某行 (对于程序超过100的人就有福音了) Ctrl+M最大化当前的Edit或View (再按则反之)Ctrl+/注释当前行,再按则取消注释Ctrl+Shift+F 格式化当前代码F3 跳到声明或定义的原创 2016-05-02 20:26:26 · 370 阅读 · 1 评论 -
eclipse中Ctrl+Shift+F 无法格式化代码
检查当前输入法的设置里面是否Ctrl+Shift+F 里已经设置成了其他的快捷键,最常用的是设置成了简体和繁体的转化,只要取消在输入法中的设置即可原创 2016-05-02 20:31:27 · 534 阅读 · 2 评论 -
java基础のsuper和this区别和联系
来用父类中指定操作;super可以用于访问父类中定义的属性成员方法构造器注意尤其当子类父类出现同名成员时,可以用super进行区分super的追溯不仅限于直接父类super和this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识子类继承父类之后,new子类的时候,子类调用了父类的构造器,但是没有创建新的子类,只是调用了子类的构造器原创 2016-05-04 10:55:29 · 464 阅读 · 1 评论 -
java基础の重载和重写区别和联系
重载overload重写overrideoverwrite【面试题】重载与重写的区别重载“两同一不同”:同一个类,同一个方法名,不同的参数列表。注:方法的重载与方法的返回值无关!构造器也是可以重载的重写:(前提:在继承的基础之上,子类获取父类的结构以后,可以对父类中同名的方法进行“重构”)方法的返回值,方法名,形参列表形同:权限修饰符不小于父类的同名方法;子类方法的异常类型原创 2016-05-04 10:57:41 · 515 阅读 · 0 评论 -
java基础-面向对象の多态
多态性指的是:一个事物的多种表性形态方法的重载与重写也是一种表现子类对象的多态性 前提:类的继承子类对父类方法的重写程序运行时分为编译、运行对于多态来说,编译时,看左边,将此引用变量理解为父类的类型运行时,看右边,关注于真正的对象实体,子类的对象。那么执行的方法就是子类重写的 Person p1=new Man(原创 2016-05-04 15:46:01 · 384 阅读 · 0 评论 -
单例模式の懒汉式和饿汉式
单例模式,是用来解决一次只能实例化一个对象的问题。根据对象实例化的先后,有两种实现方式:懒汉式饿汉式下面是在代码中有详细的说明两种实现方法package 设计模式;/* * 单例的设计模式(饿汉式) * 1、解决的问题:使得一个类只能够创建一个对象 * 2.如何实现 * */public class SingletonTest { public static voi原创 2016-05-10 19:47:04 · 978 阅读 · 0 评论 -
模板方法
抽象类体现的是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造、但子类总体上会保留抽象类的行为方式。package 设计模式;public class TestTemple { public static void main(String[] args) { new SubTemple().spendTime(); }}// 计算代码的执行时间原创 2016-05-10 19:48:32 · 453 阅读 · 0 评论 -
抽象类abstract详解
定义随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则变得更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计的非常抽象,以至于他没有具体的实例,这样的类叫做抽象类。特点abstract修饰的类是抽象类不可以实例化但是有构造器(凡事类都有构造器,是为了对象实例化的时候可以调用,接口是没有构造器的)抽象方法所在的类一定是原创 2016-05-10 19:50:33 · 3036 阅读 · 2 评论 -
代理模式の房屋销售
前言:以前一直不太理解代理模式,随着在房地产公司做了一年程序员后,对于房地产行业业务的理解帮我从另一个角度很清晰的明白的代理模式。概述:为其他对象提供一种代理以控制这个对象的访问 代码实现和注释:package 设计模式;//代理模式/* * * 这里用卖房子来举例说明: * 代理类就是代理商agent * 被代理人就是买家buyer * 把买房子的行为抽象成原创 2016-05-14 14:56:30 · 500 阅读 · 0 评论 -
工厂模式
概述定义一个创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。适用性1.当一个类不知道它所必需创建的对象的类的时候2.当一个类希望由他的子类来指定他所创建的对象的时候3.当类将创建对象的职责委托给多个帮助子类的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候package 设计模式;//工厂模式publi原创 2016-05-14 14:57:58 · 334 阅读 · 0 评论 -
接口应用の接口实现匿名类对象
package InterfaceDemo;/* * 功能说明: * 电脑的usb接口功能 * 闪盘可以实现这个接口 * 打印机也可以实现这个接口 * 如果新来的一个新的产品例如打印机,还没有定义此时就应该是实现接口的匿名类对象 * * */public class TestInterface { public static void main(String[] args)原创 2016-05-14 15:00:45 · 642 阅读 · 0 评论 -
javaの内部类
在java中,允许一个类的定义位于另一个类的内部,前者成为内部类,后者成为外部类。Inner class一般用在定义他的类或语句块之内,在外部引用他时必须给出完整的名称。Inner class的名字不能与包含他的类名同名Inner class可以使用外部类的私有数据,因为他是外部类的成员,同一个类的成员之间可以相互访问。而外部类要访问内部类中的成员需要:内部类.成员或者内部类.原创 2016-05-18 15:41:32 · 332 阅读 · 1 评论 -
javaの面向对象的总结
前面一系列的文章都是介绍java面向对象的细节,今天把所有的总结一下,并且,针对关键字static再一次强调一下,如下图我画的思维导图:原创 2016-05-18 15:46:15 · 300 阅读 · 1 评论 -
java中static修饰特殊的类
Java里面static一般用来修饰成员变量或函数。但有一种特殊用法是用static修饰内部类,普通类是不允许声明为静态的,只有内部类才可以。被static修饰的内部类可以直接作为一个普通类来使用,而不需实例一个外部类(见如下代码) Java代码 public class OuterClass { public static class InnerC转载 2016-05-18 15:47:21 · 578 阅读 · 2 评论 -
TreeSet的排序两种实现方式Comparator和Comparable
TreeSet条件类型一样设计到排序comparable是自然(可以修改类的情况下)comparator是定制(不可以修改类的情况下)优先级更高 使用说明:一般采用的是自然排序,但是当,不能对类进行修改时不得不采用comparator方法,下面的demo采用了两种方式结合。代码整体说明:Employee类的birthday属性是自定义类MyDate类型原创 2016-05-21 17:10:37 · 3107 阅读 · 2 评论 -
全方位剖析List
数据存储数组:基本数据类型和引用数据类型集合:引用数据类型1.add(Object obj),addAll(Collection coll),size(),clear(),isEmpty()2.remove(Object obj),removeAll(Collectioncoll),retainAll(Collection coll),equals(object o原创 2016-05-21 17:33:06 · 381 阅读 · 1 评论 -
全方位剖析Set
/* * Set:无序性(底层存储位置),不可重复 * 无序性!=随机性 *不可重复性:当向Set中添加相同的元素时,后面的不可以添加进去 * 不仅重写equals()方法还要重写hashCode()方法 * * Set中元素是如何存储:使用Hash算法 *当向Set中添加对象是,首先调用此对象原创 2016-05-21 17:40:57 · 381 阅读 · 1 评论 -
java中异常处理
异常:在java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)java程序正在执行过程中的异常事件可以分为两类:Error:java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。一般不编写针对性的代码进行处理。如:java.lang.StackOverflowError栈溢出错误(变量太多) j原创 2016-05-21 18:05:11 · 393 阅读 · 1 评论 -
泛型(一)集合中使用泛型
Why1.解决元素存储的安全性问题2.解决获取数据元素时,需要类型强转的问题泛型的使用1.在集合中使用泛型2.自定义泛型类、泛型接口、泛型方法3.泛型与继承的关系4.通配符若类A是类B的子类,那么List就不是List的子接口通配符?都是?的子类例如 booleancontainsAll(Collection c);? Extends原创 2016-05-23 16:24:20 · 1669 阅读 · 1 评论 -
泛型(二)泛型类、泛型方法
需求:DAO定义了一个泛型接口StudentDAO和CustomerDAO分别继承DAO接口两个实体类Student和Customer分别属于两个类TestStudentDAO和TestCustomerDAO分别是两个测试类在注释中有讲解,请看demo:package Generic;import java.util.List;//DAO:database access o原创 2016-05-23 16:30:21 · 448 阅读 · 2 评论 -
全方位解析枚举类
如何自定义枚举类1.私有化类的构造器,保证不能在类的外部创建其对象2.在类的内部创建枚举类的实例。声明为:public static final3.若类有属性,那么属性声明为:privatefinal,此属性在构造器中赋值如何使用enum定义枚举类(见csdn博客)1.把内的内部创建的枚举类的对象首行,2.变形:去掉重复的东西(见博客)3.可以单独定义抽象方法原创 2016-05-24 17:05:57 · 341 阅读 · 2 评论 -
注解Annotation
定义:使用Annotation时要在其前面增加@符号,并把该Annotation当成一个修饰符使用。用于修饰它支持的程序元素三个基本Annotation@Override:限定重写父类方法,改注释只能用于方法@Deprecated:用于表示某个程序元素(类、方法等)已过时@SuppressWarnings:抑制编译器警告如何自定义注解以SuppressWarnings为原创 2016-05-24 17:23:01 · 334 阅读 · 1 评论 -
IOの概述
Java.io.File类的使用 IO原理及流的分类文件流FileInputStreamFileOutputStreamFileReaderFileWriter缓冲流BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter对象流 (涉及到序列化、反序列化)原创 2016-05-25 12:14:32 · 368 阅读 · 1 评论 -
IOの利用字节流和字符流完成文件的复制demo
package IO;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStre原创 2016-05-25 12:16:28 · 581 阅读 · 2 评论 -
IOの数据流
package IO;import java.io.DataInput;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;impor原创 2016-05-25 16:23:20 · 379 阅读 · 2 评论 -
IOの对象流
对象流对象的序列化机制允许把内存中的java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。当其它程序获取了这种二进制流,就可以恢复成原来的java对象优点序列化的好处在于可将任何实现了Serializable接口的对象转化为字节数据,使其在保存和传输时可以被还原序列化是RMI(Remote Me原创 2016-05-25 17:08:46 · 332 阅读 · 2 评论 -
IOの随机流
随机存取文件流RandomAccessFile类支持“随机访问”的方式,程序可以直接跳到文件的任意地方来读写文件支持只访问的部分内容可以向已存在的文件后追加内容RandomAccessFile对象包含一个记录指针,用以标志当前读写处的位置。RandomAccessFile类对象可以自由移动记录指针:long getFilePointer():获取文件记录指针的当前位置原创 2016-05-25 21:32:51 · 339 阅读 · 1 评论 -
多线程(一)概述
1.理解程序:静态的代码进程:执行的程序线程:进程的细分、程序的一条执行路径2.如何创建java程序的线程1.方法一:继承Thread方法:见demo线程里的常用方法:star(),run() , currentThread() setName(string name) yield()sleep() wait() notify() notifyAll() i原创 2016-05-28 10:40:00 · 466 阅读 · 5 评论 -
多线程(二)实现多线程两种方式
1.方法一:继承Thread方法:见demo线程里的常用方法:star(),run() , currentThread() setName(string name) yield()sleep() wait() notify() notifyAll() isAlive()2.方法二:1.创建一个实现了Runnable接口的类2.实现接口的抽象方法3.创建一个Runnable接原创 2016-05-28 10:41:34 · 419 阅读 · 3 评论 -
TCP网络编程demo
package myNetDemo;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;原创 2016-06-04 15:16:06 · 467 阅读 · 0 评论 -
网络编程总结TCP、UDP、URL编程
客户端--服务端客户端自定义浏览器服务端自定义Tomcat服务器 1.要想进行网络传输,需要考虑的问题有哪些?如何准确的定位网络上的一台主机如何进行可靠的、高效的数据传输 2.java如何实现网络通信使用IP地址--定位一台主机 使用端口号---定位一个应用=====》对应类InetAddress如何创建一个InetAddress对象原创 2016-06-05 20:21:04 · 1017 阅读 · 0 评论 -
URL编程demo
这个demo前提是在tomcat服务器的webapps的example文件夹下新建一个HelloWorld.txt。并写入一写内容package myNetDemo;import static org.junit.Assert.*;import java.io.File;import java.io.FileNotFoundException;import java.io.原创 2016-06-05 20:23:00 · 844 阅读 · 0 评论 -
java反射の动态代理与静态代理
静态代理弊端:之前博客中有讲静态代理机制的,特征是代理类和目标对象的类都是在编译期间确定下来的,不利于程序的扩展。同时,每一个代理类只能为一个接口服务,这样一来程序开发中必然产生过多的代理 最好可以通过一个代理类完成全部代理功能动态代理定义动态代理是指客户通过代理类来调用其他对象的方法,并且是在程序运行时根据需要动态创建目标类的代理对象。使用场合原创 2016-06-06 14:57:15 · 826 阅读 · 1 评论 -
java反射机制详解及应用
1.如何创建Class的实例(反射的源头)理解:Class是一个对象,对应一个运行时类。相当于一个运行时类本身充当了Class的一个实例过程:源文件经过编译(javac.exe)这步,就需要进行类的加载(通过JVM的类的加载器)记载到内存中的缓存,每一个放入缓存中的.class文件就是一个Class实例!Java.lang.Class是反射的源头。接下来涉及到的原创 2016-06-06 16:26:19 · 579 阅读 · 1 评论 -
反射 动态代理与AOP
AOP:Aspect Orient Programmingpackage myNetDemo;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import javax.xml.ws.spi.Invoker;inter原创 2016-06-06 17:13:41 · 533 阅读 · 1 评论