Java 编程知识
文章平均质量分 89
龙雪zzZ
这个作者很懒,什么都没留下…
展开
-
面试必备的 200+ Java面试题(附详解答案)
适宜阅读人群需要面试的初/中/高级 java 程序员 想要查漏补缺的人 想要不断完善和扩充自己 java 技术栈的人 java 面试官面试题模块介绍面试题包含的内容了十九了模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Myba...转载 2019-08-03 09:40:05 · 394 阅读 · 2 评论 -
Java:注解概述
注解概念 1.JDK5及其以后JDK版本开始支持Java注解; 2.Java注解(Annotation)也叫作元数据,以‘@注解名’在代码中存在,它是一种在源代码中标注的特殊标记,可以标注源代码中的类、属性、方法、参数等代码,主要用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。 注解分类 Java注解按照是否含有参数分为三种: 1.不带参数,语法结...原创 2018-10-08 07:41:01 · 274 阅读 · 0 评论 -
Java 反射:动态数组
1.Java在创建数组的时候,需要指定数组长度,且数组长度不可变。而java.lang.reflect包下提供了一个Array类,通过这些方法可以创建动态数组,对数组元素进行赋值、取值操作。 2.Array类提供的主要方法(均为静态方法)如下: static Object newInstance(Class componentType, int ...原创 2018-09-29 18:43:30 · 425 阅读 · 0 评论 -
Java 反射:普通方法
获取普通方法 借助Class类某些可以获取对应类中声明的普通方法实例对象,这些方法有: Method[] getMethods():返回一个该Class对象表示类或接口中所有public方法(含继承的)对应的Method对象数组。 Method getMethod(String methodName, Class<?>... parameterTyp...原创 2018-09-29 18:37:26 · 569 阅读 · 0 评论 -
Java 反射:成员变量
获取成员变量 借助Class类某些可以获取对应类中声明的成员变量实例对象,这些方法有: ⑴Field[] getFields():返回一个该Class对象表示类或接口中所有public属性(含继承的)对应的Field对象数组。 ⑵Field getField(String fieldName):返回该Class对象表示类或接口中与指定属性名(含继承的)相同的public 属...原创 2018-09-29 18:26:49 · 883 阅读 · 0 评论 -
Java 反射:构造方法
获取构造方法 1.借助Class类某些可以获取对应类中声明的构造方法实例对象,这些方法有: ⑴Constructor[] getConstrutors():返回该Class对象表示类包含的所有public构造方法(不含继承)所对应Constructor对象数组。 ⑵Constructor getConstrutor(Class<?>... parameterTy...原创 2018-09-29 18:19:18 · 859 阅读 · 0 评论 -
Java 反射:Class类
Class类 1.Class类是Java 反射机制的入口,封装了一个类或接口的运行时信息,通过调用Class类的方法可以获取这些信息。 2.Class类的特点:该类在java.lang包中; 该类被final所修饰,即该类不可以被子类继承; 该类实现了Serializable接口; 该类的构造方法被private所修饰,即不能通过new关键字创建该类的对象; 3.可...原创 2018-09-29 18:03:29 · 567 阅读 · 0 评论 -
Java:Log4j
1.概念辨析: Log4j是Apache的一个开源项目,通过使用Log4j,可以控制日志信息格式及其输送目的地(控制台、文件、数据库等),方便后期查找系统运行期间出现的问题,进而便于维护系统。 2.配置Log4j 步骤: 第一步:导入log4j-1.2.15.jar依赖包;第二步:在src根目录下创建名为log4j.properties的文件,文件内容如下: ...原创 2018-09-15 18:29:52 · 393 阅读 · 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 · 3880 阅读 · 0 评论 -
Java 异常:自定义异常类
1.为什么? Java API提供的已有异常类无法准确表述当前发生的异常问题,这时就需要创建自定义的异常。 2.怎么做? ⑴创建继承Exception 或其子类的自定义类; ⑵自定义异常类调用父类构造函数(通常是含有一个String类型参数的构造函数); 注:自定义异常类构造方法中调用父类一个含有String类型的构造方法,使得错误信息能在异常类对象...原创 2018-09-15 18:16:07 · 760 阅读 · 0 评论 -
Java 异常:抛出异常
throw关键字 1.throw用于抛出具体异常类的对象,一般用于方法体中。 2.什么时候使用:当所写的代码因不满足某些条件致使程序无法运行时可以借助throw抛出一个异常对象提醒程序员。 3.当b为0时不满足下面输出语的执行条件,所以使用throw关键字抛出运行时异常,用于提醒方法调用者 4.throw关键字一般用在方法体中,也可以用在代码块中,...原创 2018-09-15 18:06:18 · 10748 阅读 · 0 评论 -
Java 注解:内置注解
@Override注解 1.@Override被用于标注方法,用于说明所标注的方法是重写父类的方法: 代码1 代码2注:子类重写父类的方法可用@Override标注 2.为了支持@Override,需要将项目工程升级为1.6或其以上版本;如果升级后Java代码没问题,但是工程报错,可以通过如下操作解决:右键项目“Properties”——>“Pr...原创 2018-10-08 22:58:31 · 435 阅读 · 0 评论 -
Java 注解:元注解
Java提供了四个用于修饰自定义注解的元注解:@Target、@Retention 、@Documented和@Inherited 元注解——@Target @Target:用于指定被修饰的自定义注解只能用于修饰程序中哪些元素,该元注解有如下属性值: 1.ElementType.ANNOTATION_TYPE:应用于其他注解的元注解2.ElementType.CONST...原创 2018-10-09 12:41:17 · 912 阅读 · 0 评论 -
Java:Win10 JDK 安装步骤
1. 检查操作系统版本 右键我的电脑,选择属性,如下图,查看操作系统版本是32位还是64位: 下载JDK参考JDK下载说明书.docx。 Win10设置环境变量 1.在系统属性中选择系统高级设置如下图: 2.在高级系统设置面板中选择高级选项卡,然后点击环境变量:如下图所示: 3.在环境变量面板中选择 “系统变量”然后新建如下图所示...原创 2018-10-15 18:21:15 · 2746 阅读 · 0 评论 -
Java:泛型
泛型概述 JDK5以后, Java引入了“参数化类型(parameterized type)”的概念, 该概念也称之为泛型(Generic)。所谓泛型就是允许在定义接口、类或方法时使用类型形参,该类型形参将在声明变量、创建对象或者调用方法时动态指定(即传入实际的类型参数,可称为类型实参)。泛型的出现简化了代码,提高了程序的健壮性。 泛型接口 泛型接口,Java5改写了集合框...原创 2018-10-26 12:09:40 · 294 阅读 · 0 评论 -
Java:自动拆箱和装箱及包装类
自动拆箱和装箱 自动拆箱和装箱是从JDK5.0才开始有的,它方便了基本数据类型和其对应的包装类型之间的转换。 将一个基本数据类型的值赋给其所对应的包装类型称之为自动装箱;将一个基本数据类型包装类类型的值赋给其所对应的基本数据类型称之为自动拆箱。 包装类数据缓存 1.Java对部分经常使用的数据采用缓存技术,即第一次使用该数据则创建该数据对象并对...原创 2018-10-26 11:50:48 · 2916 阅读 · 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 · 480 阅读 · 0 评论 -
Java:Map接口
概述 1.Map集合基于 键(key)/值(value)映射。每个键最多只能映射一个值。键可以是任何引用数据类型的值,不可重复;值可以是任何引用数据类型的值,可以重复;键值对存放无序。 2.Map常用实现类: ⑴HashMap:允许使用 null 值和 null 键;此类不保证映射的顺序;在多线程操作下不安全⑵LinkedHashMap:基于哈希表和链接列表的实现类;具...原创 2018-10-26 00:02:27 · 419 阅读 · 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 · 2267 阅读 · 0 评论 -
Java:List接口
概述 1.List接口继承Collection接口; 2.该接口属于数据结构中的线性结构,用户可以根据元素的整数索引来访问元素; List接口实现类 1.ArrayList(数组线性表)a.List 接口的实现类。其内部基于一个大小可变数组来存储b.允许存储 null 元素 2.LinkedList(双向链表)a.List 接口的链接列表实现类...原创 2018-10-25 22:35:25 · 385 阅读 · 0 评论 -
Java:集合框架
集合框架概述集合又称为容器,用于存储、提取、删除数据。JDK提供的集合API都包含在 java.util 包内。集合框架两大分支:Collection接口和Map接口 Collection集合 Map集合 上为概述,集合框架相关详细知识:Java:List接口https://blog.csdn.net/DragonGirI/article...原创 2018-10-25 21:58:41 · 342 阅读 · 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 · 176 阅读 · 0 评论 -
Java:IO流
IO流 1.I是指Input(输入),O是指Output(输出)。 2.在Java中,文件的输入和输出是通过流(Stream)来实现的,流的概念源于Unix中管道(pipe)的概念。在Unix系统中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。 3.一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是I...原创 2018-10-18 23:00:29 · 144 阅读 · 0 评论 -
Java:File类
File类File类代表一个特定的文件或者目录,并提供了若干方法对该文件或目录进行操作。文件存储在移动硬盘,固态盘,DVD光盘里 File类构造方法 方法 说明 File(String pathname) 通过路径名创建一个新 File 实例 File(File parent, St...原创 2018-10-18 22:26:04 · 255 阅读 · 0 评论 -
Java 异常:捕获异常
语法结构 1.捕获异常语法结构: 红框:使用try{}块来抛出异常蓝框:使用try{}块来抛出异常橙框:由于对循环体中的异常进行了捕获处理,所以该行代码可以执行 2.try…catch…finally异常处理结构中,try语句块是必须的, catch和finally语句块至少出现一个。 3.注意:如果try语句块包含的是检查时异常,则在没有...原创 2018-09-15 17:44:12 · 658 阅读 · 0 评论 -
Java:异常概述
Java中的异常Java语言将程序运行过程中所发生的不正常严重错误称为异常,对异常的处理称为异常处理。它会中断正在运行的程序,正因为如此异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点。 注 :该行代码因上面循环体出现数组下标越界异常而不被运行 异常分类 注:Throwable:常用方法:public Stri...原创 2018-09-15 17:31:41 · 305 阅读 · 0 评论 -
Java:关键字this,super,final
关键字this1.this代表对当前对象的一个引用。 (“当前”具体指去调用含有this的方法的某对象)this在实例方法中通常被省略,除非实例方法中包含与成员变量同名的局部变量时,访问成员变量需要使用this。2.this关键字用于调用属性、方法及本类中构造方法。3.this不能用于静态方法或静态代码块中。关键字supersuper使用原则:⑴sup...原创 2018-09-15 13:10:17 · 249 阅读 · 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 · 429 阅读 · 0 评论 -
Java:对象初始化过程
先看下面的代码图 注意:1.对象已经创建,否则this.name会出现错误2.已经存在了,否则this.name会出现错误3.程序运行结果先输出张三,然后输出李四,可见一定先调用非静态代码块,再调用构造函数,并且调用非静态代码块时所创建对象的实例属性值为初始化值,或者是默认值(如果没有初始化) 用new创建并初始化对象步骤:1.给对象的实例变量(非“常量”)分配内...原创 2018-08-23 21:04:09 · 210 阅读 · 0 评论 -
Java:static关键字
static是Java中的一种修饰符,顾名思义就是静态化。 在Java程序中常见有用于限制方法的调用方式,比如一个输出文字的简单方法public static void print() { System.out.println("Hello World!"); } 下面就介绍static一些的内容用法static常用于修饰(1)成员变量 (2)方法 (3)代码块 ...原创 2018-08-22 18:28:19 · 696 阅读 · 0 评论 -
Java:全局变量(成员变量)与局部变量
分类细则:变量按作用范围划分分为全局变量(成员变量)和局部变量成员变量按调用方式划分分为实例属性与类属性 (有关实例属性与类属性的介绍见另一博文https://blog.csdn.net/DragonGirI/article/details/81948332)局部变量按定义位置划分分为形参,方法局部变量,代码块局部变量 成员变量: 直接在类中声明的变量叫成员变量(又...原创 2018-08-22 17:40:25 · 7206 阅读 · 0 评论 -
Java :break,continue,return的基础区别
break,continue,return是程序中经常出现的语句,其功能也有点相似之处,有时候辨析时易混淆,下为三者的区别分析。大致思路:明确用在什么语句或结构中,其具体作用以及其他两者没有的特殊作用。break:主要是用于switch语句和循环语句中。break语句主要是在switch语句和循环结构出现。break用于结束其所在当前switch语句块程序的运行,但不会影响其所在...原创 2018-08-16 14:04:37 · 266 阅读 · 0 评论 -
Java:二分法查找元素
二分法查找原理思路:搜索数据与 有序数组 中间元素比较以确定在中间元素左边还是右边,如果在右边,则调整最小搜索索引值,然后进入下次循环;如果在左边,则调整最大搜索索引值,然后进入下次循环;如果相等则当前位置就是查找数据所在位置,停止循环;注意:因为是根据数组元素之间的大小关系来查找元素的,所以数组必须是有序的数组,而且升序(从小到大)与降序(从大到小)的代码也会不同。本篇以升序为例。...原创 2018-08-16 13:05:55 · 1027 阅读 · 0 评论 -
Java:值传递与地址传递(引用传递)区别
值传递(pass by value)是指在调用函数时将实际参数 复制 一份传递到函数中,这样在函数中如果对 参数 进行修改,将不会影响到实际参数。传递对象往往为整型浮点型字符型等基本数据结构。public class PassByValueReference { //值传递 public static void main(String[] args) { int x = 9; p...原创 2018-08-15 17:35:10 · 7322 阅读 · 0 评论 -
Java:冒泡排序法
冒泡排序法是最基本的排序法之一,冒泡排序法的运行机制是通过循环遍历元素并调整相邻元素顺序来实现的一种简单排序方法。冒泡排序的实质是相邻两个元素比较,然后按照升序或降序调换位置。下为降序冒泡排序的代码:public class Training { public static void main(String[] args) { int [] array = {3,2...原创 2018-08-15 15:31:57 · 1123 阅读 · 0 评论 -
Java:计算6x6宫格两对角线数字之和
计算如图的两对角线数之和 ,编写了一段较为简捷的代码public class Training { public static void main(String[] args) { int [][] scores = new int[6][6]; int num = 0; int sum1 = 0; int sum2 = 0; for (int i ...原创 2018-08-15 15:14:50 · 1009 阅读 · 0 评论 -
Java: short a=1; a=a+1; 编译报错
最近练习是遇到的一个小问题,作分享。 short a=1; a=a+1; 编译报错java里a=a+1会自动转型成int,如果不进行显示转换,而是将int强转short就会报错.正确写法为 short a=1; a=(short)(a+1); (显示转换) 反过来,short→int可以不用写,会自动转换 规则:隐式类型转换可以从小到大自动转,即byte→s...原创 2018-08-11 16:11:51 · 2141 阅读 · 0 评论 -
Java:继承
继承1.概念:继承是面向对象编程的三大特征之一,是一种基于已有类来创建新类的机制。由继承而得到的类称为子类(或派生类),被继承的类称为父类(或超类)。Java中每个类只允许有一个父类。语法如下:class <子类> extends <父类> Object类是所有类的直接父类或间接父类。 2.根据访问权限修饰符的不同,子类可以继承父类中某些成员...原创 2018-08-23 22:24:20 · 377 阅读 · 0 评论 -
Java:重写
1.子类可以继承父类方法,但有时从父类继承的方法在子类中必须进行修改以适应新类的需要,这种对父类方法进行改写或改造的现象称为方法重写或方法覆盖。父类方法在子类中重写使继承更加灵活。2.子类重写了父类的方法,则使用子类创建的对象调用该方法时,调用的是重写后的方法,即子类中的方法:Father.java文件中的代码:程序运行结果:Son.java文件中的代码 :...原创 2018-09-05 11:05:34 · 1715 阅读 · 0 评论 -
Java:包
包 1.包命名规则:包名全部由小写字母(多个单词也全部小写); 如果包名包含多个层次,每个层次应该用“.”分割; 包名一般由倒置的域名开头,比如com.baidu;——不要有www 自定义包不能java开头;示例:注:在src下创建com.baidu.tool包,并在包中新建DateUtil Java源文件 注:a、 package语句用于指明该源文...原创 2018-09-06 07:53:24 · 249 阅读 · 0 评论