
Java基础
文章平均质量分 89
Java的一些基础知识的介绍,欢迎网友们的建议与指正
龙雪zzZ
这个作者很懒,什么都没留下…
展开
-
Java:泛型
泛型概述 JDK5以后, Java引入了“参数化类型(parameterized type)”的概念, 该概念也称之为泛型(Generic)。所谓泛型就是允许在定义接口、类或方法时使用类型形参,该类型形参将在声明变量、创建对象或者调用方法时动态指定(即传入实际的类型参数,可称为类型实参)。泛型的出现简化了代码,提高了程序的健壮性。 泛型接口 泛型接口,Java5改写了集合框...原创 2018-10-26 12:09:40 · 323 阅读 · 0 评论 -
Java:自动拆箱和装箱及包装类
自动拆箱和装箱 自动拆箱和装箱是从JDK5.0才开始有的,它方便了基本数据类型和其对应的包装类型之间的转换。 将一个基本数据类型的值赋给其所对应的包装类型称之为自动装箱;将一个基本数据类型包装类类型的值赋给其所对应的基本数据类型称之为自动拆箱。 包装类数据缓存 1.Java对部分经常使用的数据采用缓存技术,即第一次使用该数据则创建该数据对象并对...原创 2018-10-26 11:50:48 · 2947 阅读 · 0 评论 -
Java 集合框架:工具类
Collections类 常用方法: 1.max(Collection <? extends T> coll):根据元素的自然顺序,返回给定集合元素中的最大元素 2.min(Cssollection <? extends T> coll):根据元素的自然顺序,返回给定集合元素中的最小元素 3.sort(List<T> list) ...原创 2018-10-26 11:42:19 · 492 阅读 · 0 评论 -
Java:Map接口
概述 1.Map集合基于 键(key)/值(value)映射。每个键最多只能映射一个值。键可以是任何引用数据类型的值,不可重复;值可以是任何引用数据类型的值,可以重复;键值对存放无序。 2.Map常用实现类: ⑴HashMap:允许使用 null 值和 null 键;此类不保证映射的顺序;在多线程操作下不安全⑵LinkedHashMap:基于哈希表和链接列表的实现类;具...原创 2018-10-26 00:02:27 · 453 阅读 · 0 评论 -
Java:Set接口
Set接口 1.概述: Set接口继承Collection接口; 2.Set接口常用实现类: ⑴HashSet a.实现了 Set 接口b.“它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变”c.允许使用 null 元素 ⑵LinkedHashSet a.HashSet的子类b.由于该实现类对象维护着一个运行于所有元素的...原创 2018-10-25 23:49:11 · 2310 阅读 · 0 评论 -
Java:List接口
概述 1.List接口继承Collection接口; 2.该接口属于数据结构中的线性结构,用户可以根据元素的整数索引来访问元素; List接口实现类 1.ArrayList(数组线性表)a.List 接口的实现类。其内部基于一个大小可变数组来存储b.允许存储 null 元素 2.LinkedList(双向链表)a.List 接口的链接列表实现类...原创 2018-10-25 22:35:25 · 404 阅读 · 0 评论 -
Java:集合框架
集合框架概述集合又称为容器,用于存储、提取、删除数据。JDK提供的集合API都包含在 java.util 包内。集合框架两大分支:Collection接口和Map接口 Collection集合 Map集合 上为概述,集合框架相关详细知识:Java:List接口https://blog.csdn.net/DragonGirI/article...原创 2018-10-25 21:58:41 · 358 阅读 · 0 评论 -
Java:NIO
NIO(即New IO)概念 JDK1.4版本开始,JDK提供了新的IO操作API, NIO提供多路(non-blocking) 非阻塞式的高伸缩性网络I/O,从而提高了效率,NIO主要有三大核心组件:Channel、Buffer和Selector,这里重点学习前两个, Selector 将在网络编程章节详细介绍。 Buffer Buffer是一个抽象类,Buffer类型变...原创 2018-10-20 15:10:54 · 199 阅读 · 0 评论 -
Java:IO流
IO流 1.I是指Input(输入),O是指Output(输出)。 2.在Java中,文件的输入和输出是通过流(Stream)来实现的,流的概念源于Unix中管道(pipe)的概念。在Unix系统中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。 3.一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是I...原创 2018-10-18 23:00:29 · 173 阅读 · 0 评论 -
Java:File类
File类File类代表一个特定的文件或者目录,并提供了若干方法对该文件或目录进行操作。文件存储在移动硬盘,固态盘,DVD光盘里 File类构造方法 方法 说明 File(String pathname) 通过路径名创建一个新 File 实例 File(File parent, St...原创 2018-10-18 22:26:04 · 274 阅读 · 0 评论 -
Java 注解:元注解
Java提供了四个用于修饰自定义注解的元注解:@Target、@Retention 、@Documented和@Inherited 元注解——@Target @Target:用于指定被修饰的自定义注解只能用于修饰程序中哪些元素,该元注解有如下属性值: 1.ElementType.ANNOTATION_TYPE:应用于其他注解的元注解2.ElementType.CONST...原创 2018-10-09 12:41:17 · 937 阅读 · 0 评论 -
Java 注解:内置注解
@Override注解 1.@Override被用于标注方法,用于说明所标注的方法是重写父类的方法: 代码1 代码2注:子类重写父类的方法可用@Override标注 2.为了支持@Override,需要将项目工程升级为1.6或其以上版本;如果升级后Java代码没问题,但是工程报错,可以通过如下操作解决:右键项目“Properties”——>“Pr...原创 2018-10-08 22:58:31 · 458 阅读 · 0 评论 -
Java:注解概述
注解概念 1.JDK5及其以后JDK版本开始支持Java注解; 2.Java注解(Annotation)也叫作元数据,以‘@注解名’在代码中存在,它是一种在源代码中标注的特殊标记,可以标注源代码中的类、属性、方法、参数等代码,主要用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。 注解分类 Java注解按照是否含有参数分为三种: 1.不带参数,语法结...原创 2018-10-08 07:41:01 · 290 阅读 · 0 评论 -
Java 反射:普通方法
获取普通方法 借助Class类某些可以获取对应类中声明的普通方法实例对象,这些方法有: Method[] getMethods():返回一个该Class对象表示类或接口中所有public方法(含继承的)对应的Method对象数组。 Method getMethod(String methodName, Class<?>... parameterTyp...原创 2018-09-29 18:37:26 · 593 阅读 · 0 评论 -
Java 反射:动态数组
1.Java在创建数组的时候,需要指定数组长度,且数组长度不可变。而java.lang.reflect包下提供了一个Array类,通过这些方法可以创建动态数组,对数组元素进行赋值、取值操作。 2.Array类提供的主要方法(均为静态方法)如下: static Object newInstance(Class componentType, int ...原创 2018-09-29 18:43:30 · 461 阅读 · 0 评论 -
Java 反射:成员变量
获取成员变量 借助Class类某些可以获取对应类中声明的成员变量实例对象,这些方法有: ⑴Field[] getFields():返回一个该Class对象表示类或接口中所有public属性(含继承的)对应的Field对象数组。 ⑵Field getField(String fieldName):返回该Class对象表示类或接口中与指定属性名(含继承的)相同的public 属...原创 2018-09-29 18:26:49 · 916 阅读 · 0 评论 -
Java 反射:构造方法
获取构造方法 1.借助Class类某些可以获取对应类中声明的构造方法实例对象,这些方法有: ⑴Constructor[] getConstrutors():返回该Class对象表示类包含的所有public构造方法(不含继承)所对应Constructor对象数组。 ⑵Constructor getConstrutor(Class<?>... parameterTy...原创 2018-09-29 18:19:18 · 892 阅读 · 0 评论 -
Java 反射:Class类
Class类 1.Class类是Java 反射机制的入口,封装了一个类或接口的运行时信息,通过调用Class类的方法可以获取这些信息。 2.Class类的特点:该类在java.lang包中; 该类被final所修饰,即该类不可以被子类继承; 该类实现了Serializable接口; 该类的构造方法被private所修饰,即不能通过new关键字创建该类的对象; 3.可...原创 2018-09-29 18:03:29 · 590 阅读 · 0 评论 -
Java:Log4j
1.概念辨析: Log4j是Apache的一个开源项目,通过使用Log4j,可以控制日志信息格式及其输送目的地(控制台、文件、数据库等),方便后期查找系统运行期间出现的问题,进而便于维护系统。 2.配置Log4j 步骤: 第一步:导入log4j-1.2.15.jar依赖包;第二步:在src根目录下创建名为log4j.properties的文件,文件内容如下: ...原创 2018-09-15 18:29:52 · 423 阅读 · 0 评论 -
Java:Debug 代码调试及快捷键
1.Eclipse开发工具中F5、F6、F7和F8 四个快捷键能辅助我们很好地进行代码的调试,各快捷键的作用如下: F5:跳入方法; F6:向下逐行调试; F7:跳出方法; F8:直接跳转到下一个断点; 2.Eclipse开发工具中F5、F6、F7和F8 四个快捷键对代码的调试实质是人为地控制代码的运行过程。...原创 2018-09-15 18:17:48 · 3929 阅读 · 0 评论 -
Java 异常:自定义异常类
1.为什么? Java API提供的已有异常类无法准确表述当前发生的异常问题,这时就需要创建自定义的异常。 2.怎么做? ⑴创建继承Exception 或其子类的自定义类; ⑵自定义异常类调用父类构造函数(通常是含有一个String类型参数的构造函数); 注:自定义异常类构造方法中调用父类一个含有String类型的构造方法,使得错误信息能在异常类对象...原创 2018-09-15 18:16:07 · 791 阅读 · 0 评论 -
Java 异常:抛出异常
throw关键字 1.throw用于抛出具体异常类的对象,一般用于方法体中。 2.什么时候使用:当所写的代码因不满足某些条件致使程序无法运行时可以借助throw抛出一个异常对象提醒程序员。 3.当b为0时不满足下面输出语的执行条件,所以使用throw关键字抛出运行时异常,用于提醒方法调用者 4.throw关键字一般用在方法体中,也可以用在代码块中,...原创 2018-09-15 18:06:18 · 10814 阅读 · 0 评论 -
Java 异常:捕获异常
语法结构 1.捕获异常语法结构: 红框:使用try{}块来抛出异常蓝框:使用try{}块来抛出异常橙框:由于对循环体中的异常进行了捕获处理,所以该行代码可以执行 2.try…catch…finally异常处理结构中,try语句块是必须的, catch和finally语句块至少出现一个。 3.注意:如果try语句块包含的是检查时异常,则在没有...原创 2018-09-15 17:44:12 · 713 阅读 · 0 评论 -
Java:异常概述
Java中的异常Java语言将程序运行过程中所发生的不正常严重错误称为异常,对异常的处理称为异常处理。它会中断正在运行的程序,正因为如此异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点。 注 :该行代码因上面循环体出现数组下标越界异常而不被运行 异常分类 注:Throwable:常用方法:public Stri...原创 2018-09-15 17:31:41 · 326 阅读 · 0 评论 -
Java:关键字this,super,final
关键字this1.this代表对当前对象的一个引用。 (“当前”具体指去调用含有this的方法的某对象)this在实例方法中通常被省略,除非实例方法中包含与成员变量同名的局部变量时,访问成员变量需要使用this。2.this关键字用于调用属性、方法及本类中构造方法。3.this不能用于静态方法或静态代码块中。关键字supersuper使用原则:⑴sup...原创 2018-09-15 13:10:17 · 268 阅读 · 0 评论 -
Java:Lambda 表达式
Lambda 表达式 1.Java支持Lambda 表达式始于Java 8,它的出现简化了函数式接口匿名内部类的语法,其表达式语法如下: ([参数1], [参数2], [参数3],.... [参数n])->{代码块} 示例: 2.如果方法没有返回值且只有一行代码,则Lambda表达式语法可以是这种形式: ([参数1], [参数2], [参数3],....原创 2018-09-09 19:54:14 · 244 阅读 · 0 评论 -
Java:内部类特点
内部类特点: 1.内部类是一个独立的类:编译之后内部类会被编译成独立的.class文件,如果该内部类为有名内部类,则有名内部类字节码文件名为外部类的类名+$+内部类类名;如果为匿名内部类,则匿名内部类字节码文件名为外部类类名+$+数字; 2.普通外部类、抽象类和接口可以有内部类(匿名的或有名的); 3.内部类可以直接定义在类中,也可以定义在方法或代码块中;其中直接定义在外部...原创 2018-09-07 12:16:43 · 1011 阅读 · 0 评论 -
Java:内部类分类
有名内部类 1.概念:内部类:指在一个外部类内定义的类。 2.按照是否有类名分为有名内部类和匿名内部类。 有名内部类: 匿名内部类 1.匿名内部类由于没有类名而不能单独存在,定义匿名内部类的同时须直接实例化该类,其语法格式如下: new 父类构造器([参数列表])|接口(){ //匿名内部类类体...原创 2018-09-07 12:09:43 · 420 阅读 · 0 评论 -
Java:接口
接口 1.Java接口是抽象方法的集合,其定义语法为: 访问权限控制符 interface 接口名 [extends 接口列表] {常量;抽象方法;内部类;} 注: 访问权限控制符:该访问控制符只有两个:public和友好的。 接口名: 接口名的命名规则和类名的命名规则相同。 2.接口内只能包含常量(publi...原创 2018-09-07 11:41:42 · 323 阅读 · 0 评论 -
Java:抽象类
抽象类 1.abstract可以修饰类和方法: ⑴abstract修饰的类称为做抽象类; ⑵abstract修饰的方法叫做抽象方法,抽象方法只有声明部分,而没有具体的方法体。 2.一个abstract类只关心它的子类是否具有某种功能,并不关心其自身功能的具体行为,功能的具体行为由子类负责实现。 3.抽象类不能被直接实例化,即不能使用关键...原创 2018-09-07 11:20:14 · 312 阅读 · 0 评论 -
Java:StringBuffer类
StringBuffer类 区别:StringBuffer类也可以存放字符串,和String类不同的是,StringBuffer字符串代表的是可变的字符序列,可以对字符串对象内容进行修改。 构造方法 说明 public StringBuffer() 保留 16 个字符的空间 publi...原创 2018-09-07 09:29:05 · 261 阅读 · 0 评论 -
Java:Java API 文档
原创 2018-09-07 09:26:35 · 208 阅读 · 0 评论 -
Java:String类
实例化方式 1.String类是引用数据类型,该类实例化方式有两种: ⑴直接赋值,其语法格式如下:注: 直接赋值 ⑵构造方法实现其实例化,其语法格式如下:注:构造方法:将字符数组中的元素变为一个字符串 两种方式区别 1.String类实例化的两种方式是有区别的: ⑴直接赋值,这种方式会出现常量池数据共享的现象:示例一 :...原创 2018-09-07 09:24:57 · 282 阅读 · 0 评论 -
Java:封装
封装 1.封装是Java三大特征之一,指使用公有方法操作类中私有属性以保证数据的安全性。 注:age属性的值一定会大于、等于0且小于150 2.Eclipse中快速生成setter方法和getter方法: ⑴鼠标定位在类中à鼠标右键à点击“Source”à点击“Generate Getters and Setters...”,出现下图: ...原创 2018-09-07 08:48:13 · 207 阅读 · 0 评论 -
Java:访问控制符
访问控制符1.软件中的某些属性和方法出于程序安全考虑不允许被其它类操作和调用,这就需要使用Java中的访问权限修饰符,Java中的访问权限修饰符有4种: 2.Java中的访问权限修饰符可以修饰成员变量、构造方法、普通方法。 3.全面研究某个访问权限的使用范围需要从以下方法考虑: 4.访问控制符使用范围:public是最大的访问权限修饰符,其修饰的...原创 2018-09-07 08:43:32 · 464 阅读 · 0 评论 -
Java:包
包 1.包命名规则:包名全部由小写字母(多个单词也全部小写); 如果包名包含多个层次,每个层次应该用“.”分割; 包名一般由倒置的域名开头,比如com.baidu;——不要有www 自定义包不能java开头;示例:注:在src下创建com.baidu.tool包,并在包中新建DateUtil Java源文件 注:a、 package语句用于指明该源文...原创 2018-09-06 07:53:24 · 267 阅读 · 0 评论 -
Java:重写
1.子类可以继承父类方法,但有时从父类继承的方法在子类中必须进行修改以适应新类的需要,这种对父类方法进行改写或改造的现象称为方法重写或方法覆盖。父类方法在子类中重写使继承更加灵活。2.子类重写了父类的方法,则使用子类创建的对象调用该方法时,调用的是重写后的方法,即子类中的方法:Father.java文件中的代码:程序运行结果:Son.java文件中的代码 :...原创 2018-09-05 11:05:34 · 1747 阅读 · 0 评论 -
Java:继承
继承1.概念:继承是面向对象编程的三大特征之一,是一种基于已有类来创建新类的机制。由继承而得到的类称为子类(或派生类),被继承的类称为父类(或超类)。Java中每个类只允许有一个父类。语法如下:class <子类> extends <父类> Object类是所有类的直接父类或间接父类。 2.根据访问权限修饰符的不同,子类可以继承父类中某些成员...原创 2018-08-23 22:24:20 · 406 阅读 · 0 评论 -
Java:构造方法
为什么需要构造方法?public class Teacher { int age; // 年龄 String name; // 姓名 String position; // 职位 String education; // 学历 public String introduction() { return "大家好!我是" + name + ",我今年" + age + "岁...原创 2018-08-23 20:48:28 · 456 阅读 · 0 评论 -
Java:对象初始化过程
先看下面的代码图 注意:1.对象已经创建,否则this.name会出现错误2.已经存在了,否则this.name会出现错误3.程序运行结果先输出张三,然后输出李四,可见一定先调用非静态代码块,再调用构造函数,并且调用非静态代码块时所创建对象的实例属性值为初始化值,或者是默认值(如果没有初始化) 用new创建并初始化对象步骤:1.给对象的实例变量(非“常量”)分配内...原创 2018-08-23 21:04:09 · 231 阅读 · 0 评论