- 博客(52)
- 收藏
- 关注
原创 详述java—File类
1.File类什么是file类呢?File类代表一个特定的文件或者目录,并提供了若干方法对该文件或目录进行操作。它可以是一个文件,也可以是个目录,在创建对象的基础上去操作。2.File类的构造方法File(String pathname):通过路径名创建一个新 File 实例File file=new File("F:\\Program_Files\\apache-mav...
2019-08-21 22:23:46 229
详述反射中构造方法、属性和普通方法 (如何获取、获取信息、如何使用)
一.方法1.如何获取方法:借助Class类某些可以获取对应类中声明的构造方法实例对象Constructor getConstrutor(Class<?>... parameterTypes):返回与该Class对象表示类中参数列表相匹配的public构造函数(不含继承)对应的Constructor对象。package venus;import java.lang.ref...
2019-08-20 22:40:09 211
原创 java反射
1.反射概念:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象。2.class类:Clas...
2019-08-20 11:41:41 146
原创 java堆
Java 中的堆是 JVM 管理的最大的一块内存空间,主要用于存放Java类的实例对象,其被划分为两个不同的区域:新生代 ( Young )和老年代 ( Old ),其中新生代 ( Young ) 又被划分为:Eden、From Survivor和To Survivor三个区域,如下图所示:从JDK8开始,Metaspace(元空间)替代了永久代,如下图所示:1.堆大小 = ...
2019-08-19 18:11:02 104
原创 java注解
注解概念:Java注解(Annotation)也叫作元数据,以‘@注解名’在代码中存在,它是一种在源代码中标注的特殊标记,可以标注源代码中的类、属性、方法、参数等代码,主要用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。一.注解的分类:Java注解按照是否含有参数分为三种1.不带参数,语法结构为:@Annotation2.带一个参数的注解,语法结构为:@Annotatio...
2019-08-19 17:31:50 145
原创 Mysql多表查询
create table user_info( id int(2) primary key, user_name varchar(12) unique, password varchar(15) not null, real_name varchar(8) not null, age int(3)); create table ...
2019-08-18 22:58:29 115
原创 事务隔离级别
什么是事务隔离级别?我们知道在mysql数据库中存在着事务,事务开启时,执行的命令都存放在缓存里,只有rollback或者commit时才会向上提交,同一个应用程序中的多个事务或不同应用程序中的多个事务在同一个数据集上并发执行时, 可能会出现许多意外的问题,这些问题可分为如下三种类型:1.脏读:已知有两个事务A和B, A读取了已经被B更新但还没有被提交的数据,之后,B回滚事务,A读取的...
2019-08-17 17:21:13 74
原创 数据库为什么需要外键?
想象一个场景,我们在电商网站山设置收货地址的时候,往往都是一个账号几个地址,那么在数据库存储的时候,如果不进行其他设置我们的操作是这样的create table user_info( id char(36) primary key, user_name varchar(30) not null, password varchar(30) not null, real_name...
2019-08-15 10:59:20 426
原创 DBUtil工具类
IRowMapper接口:package com.jd.util; import java.sql.ResultSet; public interface IRowMapper { void rowMapper(ResultSet resultSet);}DBUtil工具类:package com.jd.util; import java.sql.Connec...
2019-08-15 08:46:42 798
原创 DBUtil实战:学生管理系统
package sql; import java.sql.ResultSet;import java.sql.SQLException;import java.util.Scanner;import com.jd.util.DBUtil;import com.jd.util.IRowMapper; /** * 学生管理系统 * * @author 赵斌 */public...
2019-08-15 08:43:38 115
原创 详述JDBC查询方法执行过程
package jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;interface IRowMapper{ void rowMapper(...
2019-08-14 00:31:56 102
原创 HashSet中add方法底层代码分析
首先我们要创建一个HashSet集合的对象。在创建好对象之后,按住Ctrl键点击HashSet<>,进入底层代码。public HashSet() { map = new HashMap<>();}我们可以看到,HashSet的构造方法中实际上是创建了一个HashMap的对象,传给了map。1.add底层代码分析我们按住ctrl点击add进入底层...
2019-08-12 00:20:23 203 1
原创 HashCode方法代码的小讨论
我们观察如下代码package test;import java.util.HashSet;public class Test { public static void main(String[] args) { Student stu1=new Student(); System.out.println(stu1.hashCode()); System.out.pr...
2019-08-11 22:31:33 128
原创 ArrayList类contains方法底层代码分析
我们知道在ArrayList类中contains是常用的方法之一,用来判断集合中是否存在用来判断的元素,那么contains方法到底是怎么执行的呢?我们今天来加以探究。底层代码我们可以看到,contains方法调用了indexof方法,传入o,这个o此时为上转型对象,是我们想用来判断集合中是否存在的那个元素,我们接着分析indexOf代码。我们可以看到indexoj只有一个if...
2019-08-11 16:55:57 206
原创 String底层代码分析——equals方法
首先我们找到equals方法的源码:public boolean equals(Object anObject) {//易得,anObject是一个上转型对象,父类为Object类型 if (this == anObject) { //这里的this指代调用本方法的对象,判断语句比较二者 ...
2019-08-11 16:15:50 321
原创 String方法equals证明第一例
package test;public class Test { public static void main(String[] args) { String name1="Tom"; String name2="Tom"; System.out.println(name1==name2); System.out.println(name1.equals(name2))...
2019-08-11 15:51:38 92
原创 HashMap常用方法总结
我们前两篇文章围绕着集合的知识进行讲解,前两篇围绕着集合的一个分支collection的两个实现类,总结了常用方法。本篇文章讲述集合的另一个分支Map的实现类——HashMap。Map集合基于 键(key)/值(value)映射。每个键最多只能映射一个值。键可以是任何引用数据类型的值,不可重复;值可以是任何引用数据类型的值,可以重复;键值对存放无序。HashMap常用方法1.put...
2019-08-09 21:38:55 4561 2
原创 HashSet常用方法总结
上篇文章讲述了List实现类ArrayList的常用方法,那么本篇文章来讨论一下Collection另一个分支Set接口的实现类HashSet的常用方法总结。HashSet常用方法。1.add(Objectobj):向Set集合中添加元素,添加成功返回true,否则返回false。怎么能出现添加不成功的情况呢?因为HashSet不同于ArrayList,这里的add不可以添加重复...
2019-08-08 17:56:19 798
原创 ArrayList常用方法总结
首先介绍一下集合的概念。集合又称为容器,用于存储、提取、删除数据。JDK提供的集合API都包含在 java.util 包内。集合框架两大分支:Collection接口和Map接口Collection下分三个接口:List,Queue,Set。今天我们用List的实现类ArrayList来讲述List。ArrayList常用方法1.add():向列表的尾部添加指定的元素。...
2019-08-08 12:12:32 475
原创 详述throw与throws
首先讲解一下封装,我们知道,为了控制变量的范围,不被其他程序员随意更改,我们会进行封装操作。封装操作会限制在为这个变量赋值的程序员,如果范围选择不当,是不可以赋上值的,但是如何让操作这个变量的人知道,这个范围应该是多少呢?总不能一个类一个类的去找,这样太麻烦了,自定义异常类可以解决这个问题。我们知道,上篇文章讲解了异常的分类,其实每一个异常都是Exception的子类,RuntimeExc...
2019-08-07 18:23:57 296
原创 详述try-catch-fianlly
本篇文讨论异常处理方面的知识。什么是异常?Java语言将程序运行过程中所发生的不正常严重错误称为异常,对异常的处理称为异常处理。也就是我们常常说的分类。它会中断正在运行的程序,正因为如此异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点。异常的分类Throwable父类分为Exception和Error异常,error是不许需要我们来研究的。Error : ...
2019-08-07 16:55:09 184
原创 详述Lambda 表达式
匿名内部类:@FunctionalInterfaceinterface IComputer { void add(int a, int b);}public class Test { public static void main(String[] args) { IComputer computer = new IComputer() { @Ove...
2019-08-06 18:22:22 78
原创 java静态内部类与非静态内部类的区别
我们了解了内部了的基本定义与分类,我们详细讲述了在是否存在名字这方面进行的分类:有名内部类和匿名内部类。那么这篇文章就来探讨一下静态内部类与非静态内部类的区别。按照是否有static修饰分为静态内部类和非静态内部类,有static修饰的为静态内部类,没有static修饰的为非静态内部类。静态内部类1.如果要定义一个静态内部类,只能直接定义在外部类中,不可以定义在方法或代码块中。...
2019-08-06 18:11:56 379
原创 详述有名内部类与匿名内部类
定义:内部类是指定义在一个外部类内定义的类。 定义的位置:内部类可以直接定义在类中,也可以定义在方法或代码块中;其中直接定义在外部类中的内部类可以有public、protected、默认的和private四种访问权限修饰(普通外部类、接口和抽象类只能使用public和default修饰)。也可以使用static修饰( static不能修饰普通外部类、接口和抽象类)。但是定义在方法或代码块中的内部...
2019-08-06 11:59:36 143
原创 java中创建String对象
String类型创建对象的方式有两种:直接赋值,new 构造方法。首先声明:String是final类,说明它声明的变量的地址都是不可以修改的,注意是地址已经固定了,改的只是引用指向的值。1.直接赋值String a="110"这种类型就是我们所说的直接赋值,执行“String a = ”110“;”后,JVM在常量池中开辟空间存放一个abc字符串空间(即创建对象)并让a指向该对...
2019-08-04 11:33:57 516
原创 抽象类与接口区别
一个表足以表达接口与抽象类的区别。1.抽象类由abstract来修饰由class定义。2.接口由interface定义。3.抽象类有构造方法,接口无构造方法。4.抽象类是一个类,可以定义任意的合法成员变量。5.接口只有静态常量,默认由public static final来修饰。6..抽象类可以有各种方法,可以有抽象方法也可以没有抽象方法。7.接口在jdk7以下的版本中...
2019-08-03 17:30:57 80
原创 java父类对子类构造方法的影响
总的来说,可以凝练成一句话:父类构造方法一定会被子类调用!!!我们知道,在一个类中如果没有显式构造方法,则默认有隐式构造方法。当然也可以重载构造方法。无论在显示构造方法还是在隐式构造方法里,我们默认有一个super().在第一行。当然也可以自己写在构造方法里一个,super()。那么这时,那个默认的super()就失效了。注意:super()和this()一样,只能在第一行。那么如果这...
2019-08-03 17:12:09 111
原创 详述接口
我们知道一个抽象类可以有抽象方法的存在,那么当一个抽象类中的方法均为抽象方法时。这个抽象类就可以被定义成接口。所以接口是抽象方法的集合。所以接口和抽象类有几分相似。定义接口:访问权限控制符 interface 接口名 { 常量; 抽象方法; 内部类;}1.接口中的抽象方法必须通过一个类...
2019-08-02 17:07:26 93
原创 详述抽象类
在介绍抽象类之前,我们想通过代码来引入一下。背景:Mammal是Whale的父类。 double price = 9; Mammal mammal = new Whale(); mammal.move();第一行代码中实际上有一个自动类型转换的过程,因为9属于整形,要把他变到更大的double类型就要自动类型转换。第二三行代码,定义了一个Mammal类,但是在内存...
2019-08-02 11:00:44 101
原创 详述访问权限
关于访问权限有四个关键字:public,protected,友好的,privatepublic:public是最大的访问权限修饰符,其修饰的成员变量、构造方法和普通方法可在任何一个类中被操作或使用; protected:protected修饰的成员变量、构造方法和普通方法可以在其定义类中、与定义类同包的其它类(可以使子类)中和与定义类不同包但是其子类的类中使用; friendly:默认(友...
2019-08-01 18:32:28 389
原创 详述多态
在讲解多态之前,我们先看一下这一行代码进行。double a=9;这是一个简单的定义变量语句,但是我们知道9是属于整型的,如果将它赋值到double类型上实际上变成了9.0。所以这个过程中存在着一个自动类型转换的过程。再看下面的代码。package dongwu;public class Mammal { public void move() { Sys...
2019-08-01 11:26:24 59
原创 详述多态
在讲解多态之前,我们先看一下这一行代码进行。double a=9;这是一个简单的定义变量语句,但是我们知道9是属于整型的,如果将它赋值到double类型上实际上变成了9.0。所以这个过程中存在着一个自动类型转换的过程。再看下面的代码。package dongwu;public class Mammal { public void move() { System.out.printl...
2019-08-01 11:22:59 68
原创 如何创建maven项目
1、打开Eclipse,点击Ctrl+N键,出现下图: 2、依照操作顺序完成对上图的操作,出现下图: 3、点击上图“Next>”按钮,出现下图: 4、依照操作顺序完成对上图的操作,出现下图: ...
2019-07-31 11:25:19 92
原创 maven中创建java项目
1、打开Eclipse,点击Ctrl+N键,出现下图: 2、依照操作顺序完成对上图的操作,出现下图: 3、点击上图“Next>”按钮,出现下图: 4、依照操作顺序完成对上图的操作,出现下图: ...
2019-07-31 11:23:33 118
原创 配置maven
1、点击“Window”菜单——>点击“Preferences”选项,出现下图: 2、点开“Maven”节点,出现下图: 3、点击“User Settings”节点——>点击“Browse…”,找到并选中“Maven软件根目录\conf\settings.xml”文件——>点击“打开(O)”按钮,出现下图:这个的具体...
2019-07-31 11:15:44 71
原创 如何安装maven
首先还是提出一个问题:maven是什么?首先想想一个场景,当我们想实现一个功能,比如我输入一个人的名字,我想要把它转换成拼音。我应该怎么做?我们会绞尽脑汁的去想,怎么变写代码才能去实现这个功能,可能绞尽了脑汁我也想不到,那怎么办呢?程序戛然而止了吗?肯定不行!我们不行,肯定有人行!所以,在百度上一搜索,拼音的代码就会给你一个jar包,导入这个jar包,我们就导入了一段已经有人写好的代码,这...
2019-07-31 11:04:15 136
原创 详述重写
首先掷出三个问题:为什么要重写?什么是重写?怎么重写?1.为什么重写?例子:比如父类方法中关于吃东西的方法eat,父亲由于年迈,只会用手抓饭吃。然而儿子在外见过世面,会使用筷子吃饭了。那么当儿子继承了父亲的eat方法后,儿子也只能用手抓饭。显然,父亲老套的用手抓饭的方法已经不能够满足儿子的吃饭方式了。换句话来说,就是当“不能准确形容子类自身的特征”的时候,这个时候我们要进行重写的操作。...
2019-07-30 11:58:06 269
原创 详述继承
首先掷出三个问题:1,为什么继承? 2,什么是继承?3,怎么去继承?1.为什么继承?我们常常会发现当我们创建两个相近或者相似的类的时候,有时会定义许多相同的属性和方法,我们当然可以去在每一个类里去创建这些重复的属性和方法,但是我们为了简化我们的代码,这个时候我们就引入了继承。2.什么是继承?继承是面向对象编程的三大特征之一,是一种基于已有类来创建新类的机制。由继承而得到的类称为子类...
2019-07-30 11:28:01 78
原创 讨论值传递与地址传递
首先让我们现列出我们要搞清楚的问题 什么是值传递? 什么是地址传递? 二者所对应的数据类型是什么? 1.值传递•值传递(pass by value)是指在调用函数时将实际参数复制 一份传递到函数中,这样在函数中如果对 参数 进行修改,将不会影响到实际参数。public class Test { public static void main(String...
2019-07-29 23:24:28 103
原创 Java中关于this小逻辑
public class Student { String name; void doHomework(){ System.out.println(this.name+"正在做作业......."); name="刘颖"; } void speak(){ System.out.println(name+"正在说话......"); } public stat...
2019-07-29 11:24:52 102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人