自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 解决SQL注入问题

什么是SQL注入 当我们使用Statement进行操作时,在执行sql语句时,存在参数拼凑成恒等表达式的问题,如以下代码public class TestStatement { public static void main(String[] args) { String url = "jdbc:oracle:thin:@192.168.200.128:1521:XE"; String username = "HR"; Stri...

2021-11-28 15:23:25 1068

原创 用JDBC执行DML语句

在已经建立数据库链接的基础上,如何执行SQL语句呢?这时候,我们就会用到Statement对象和ResultSet对象Statement 对于增删改操作,我们只需要用到Statement对象,用法如下: 总的五步骤: 声明Statement变量:Statement stmt = null; 获取Statement对象:stmt = conn.createStatement(); 编写sql语句:String sql = ...

2021-11-28 14:59:52 1133

原创 由JDBC驱动链接数据库

什么是JDBC JDBC全称是Java数据库链接(Java Database connect),它是一套用于执行SQL语句的Java API,提供连接各种常用数据库的能力JDBC APIJDBC API主要功能:与数据库建立连接、执行SQL 语句、处理结果;常用到DriverManager类、Connection接口、Statement接口、ResultSet接口 DriverManager :根据数据库的类型,管理JDBC驱动 Connecti...

2021-11-28 10:21:54 920

原创 解决plsql无法使用where语句的问题

首先我们需要知道,之所以出现这样的情况,是因为数据库的字符集与系统的字符集不一致 对此,我们需要对它进行环境配置...

2021-11-25 18:40:24 1453

原创 ArrayList 和 LinkedList

集合框架的意义 对于一般的数组,是定长的线性存储结构,所以对于数据量不确定的对象,使用数组存储就不再适用了,集合框架就是对此提出的解决方案 从上图我们可以知道,Java集合框架类型分为两大类:Collection 和 Map,这一章我们主要简单了解一下 Collection 及其子类 Collection 接口存储对象可以是不唯一的,无序的 List 接口存储的对象可以是不唯一的,但是有序的 Set 接口存储对象...

2021-11-23 16:02:05 476

原创 迭代器 Iterator

Iterator Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 List、Set等框架集合对框架结合进行迭代的类,称其为迭代器迭代器是专门取出集合元素的对象,但该对象不能直接创建对象(通过new),该对象是以内部类的形式存在于每个集合类的内部,通过方法进行调用// Iterator, 通过key获取value,先取出所有key的集合Set keys = map.keySet();//获取Itera...

2021-11-23 15:58:04 875

原创 类的加载分类详解

什么是加载 Java中,类的生命周期有五个阶段: (1)加载:查找并获取类的class文件 (2)链接:将class文件加载到JVM中 (3)初始化:在JVM中根据class文件进行初始化,初始化只在类加载的时候执行一次 (4)调用,如创建实例(5)卸载:运行结束,JVM对其进行清理 而基于习惯,我们将前三个阶段“加载、链接、初始化”并称为“加载”如何跟踪加载下面,我...

2021-11-23 10:56:23 856

原创 static 关键字

static可以修饰变量、方法、代码块 静态变量 static修饰的变量被称为静态变量,普通成员的变量(属性)需要实例化之后才能使用而静态变量不属于某个类的示例,而是属于类(因此也被称为类变量),只要程序加载了类的字节码,在不需要创建实例的前提下,就可以被分配空间并被访问调用public class Person{ public String name; public static String country="Chi...

2021-11-22 17:42:37 188

原创 JVM内存划分(低配2.0版)

jvm在运行时,数据区域通常划分为:堆、栈、本地方法栈、程序计数器、方法区,如图 程序计数器 也被称作PC寄存器,用于存储程序将要执行的指令代码,由执行引擎读取下一条指令它是程序执行流程的指示器,分支、循环、跳转等基础功能都要依赖这个计数器完成 程序计数器内存空间较小,但运行速度是最快的 每个线程都有其自己的程序计数器,并且是线程私有的,生命周期与线程生命周期一致 由于它仅存储执行...

2021-11-22 17:18:16 733

原创 读写二进制文件

不同于文本文件的读写,二进制文件的读写需要其他指令 DataInputStream类 它是 FileInputStream 在子类,需要与 FileInputStream 类结合使用读取二进制文件 DataOutputStream类 它是 FileOutputStream 在子类,需要与 FileOutputStream 类结合使用写二进制文件 举例 public class TestDataStream { publi...

2021-11-21 19:40:04 577

原创 Reader 和 Writer

在了解字节流的读写方式后,我们来看看 字符流 的读写方式 Reader和Writer是java的IO库提供的的另一个流接口,它们和InputStreasm OutputStream的区别是:前者是字符流,以cahr为单位读写,后者是字节流,以byte单位读取...

2021-11-21 19:35:18 1435 2

原创 FileInputStream 和 FileOutputStream

1、什么是流流是一连串流动的字符, 是一组有序的数据序列,是以先进先出方式发送信息的通道,将数据从一个地方带到另一个地方,在 java 中所有数据都是使用流读写的。同时可以通过流进行文件的读写操作。2、流的分类 按照流向,可以分为输入流和输出流两大类简单来说,可以理解为将磁盘中的数据读入到内存中即为输入流;相反,将内存中的数据存入磁盘中即为输出流 按处理数据的单元,可以将流分为字节流和字符流两大类 字节流是...

2021-11-21 17:50:56 6844

原创 File类

File类以抽象的方式代表文件名和目录路径名,主要用于文件和目录的创建、文件的查找和文件的删除等,定义如下:File file = new File( String pathname ); pathname表示物理文件或目录,如d:\a.txt 或 d:/a.txt 或 d:\\a 或d:/a 常用到的操作指令如下: 参考代码:public class TestFile { public static void...

2021-11-21 16:37:31 256

原创 java 泛型

1、什么是泛型 参数化类型,将原有的具体类型参数化,适用于多种数据类型执行相同的代码,避免了强制类型的转换(类型擦除) 可以将泛型理解为一种代码模板,可以用一套代码套用各种类型2、泛型类 举个栗子// 此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型// 在实例化泛型类时,必须指定T的具体类型public class Cup<T> { // key这个成员变量的类型为T,T的类型由外部指定...

2021-11-16 18:49:24 227

原创 java 异常

1、异常的定义 异常是指在程序的运行过程中所发生的不正常的事件,导致正在执行中的程序被中断 我们之前提过三大错误,即编译错误、逻辑错误和运行错误 异常不同于程序的编译错误、逻辑错误,它是程序在运行时发生的错误2、异常的分类 异常(Thowable)被分为两大类:Error 和 Exception Error 常为程序本人无法恢复的严重错误,而 Exception 是有待于解决或上抛的问题 ...

2021-11-14 16:39:48 244

原创 内存溢出和内存泄漏

内存溢出: OOM(out of memory) 存储的数据超出了指定空间的大小时,数据就会越界:常见的溢出,是指在栈空间里,分配了超过数组长度的数据,导致多出来的数据覆盖了栈空间其他位置的数据 体积大于容积 内存泄露: 申请的内存空间没有被正确释放,导致后续程序中这一块内存被永远占用(不可达) 当且指向这块内存空间的指针不再存在时,这块内存也就永远不可达了,内存空间被蚕食 比如有10张画板,画完需要擦了还回去,这样别人可以继续画,而现在有个人拿了画板

2021-11-14 12:00:28 219

原创 java 递归

1、递归的执行过程 递归是一种特殊的循环方式,即在方法本身中再次调用笨方法,例如下代码:public class TestFullSum { public static void main(String[] args) { System.out.println(fullSum(6)); } public static int fullSum(int n) { if (n == 0) { return 0;...

2021-11-14 11:41:26 658

原创 java 内部类

1、内部类的定义 将一个类定义在另一个类或方法里,这样类我们称它为内部类2、内部类的分类 普通(成员)内部类、局部内部类、匿名内部类、静态内部类3、普通内部类public class Circle { private double radius; //内部类 class Draw { public void drawSahpe() { System.out.p...

2021-11-14 11:04:39 61

原创 java 接口

1、什么是接口 接口是一种特殊的类型,通常只包含抽象方法(也可以具备普通方法),表示一种能力,常常用于扩展类的行为2、为什么需要接口 以门和锁为例门这个类所具备的能力是开和关,而处于安全性的考虑,我们常常为门增添锁的能力。而锁是独立于门的一个类,我们需要一种方法把门和锁联系在一起 对于门和锁而言,门是主体,锁是附加能力,我们便把锁定义为接口3、接口和抽象类 从关系上来看,接口的关系是 has a ,即有一种什...

2021-11-14 09:19:07 82

原创 Git 的安装与使用

1、Git 的安装进入git的官网下载页面Git - Downloads,下载对应操作系统的git的安装包,进行安装操作 若安装的 win 版本(我用的系统是windows),安装成功后,在桌面右击,会出现如下界面 Git GUI: 以图形界面的形式进行git的日常操作 Git Bash:以命令行的方式进行git的日常操作(以下用这种方式进行说明) 2、Git 的使用 以 Idea 和 Gite...

2021-11-02 19:54:38 133

原创 java 三大特性之多态

在了解完抽象类之后,我们对多态进行学习什么是多态 我们可以将它理解为品牌,如冰箱的牌子:美的、华凌、小天鹅,打印机的牌子:黑白打印机、彩色打印机等等——它们具有同一种行为,但由于条件不同,或者说所属类不同,导致同一行为下产生的结果会有差别 在 java 中多态的概念如下:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说,就是用父类(也称基类)的引用指向子类的对象为什么需要多态 先看如下代码...

2021-11-02 16:19:53 88

原创 java 抽象类

什么是抽象 在 java的编码当中,我们经常会遇到一些被 abstract 关键字修饰的类public abstract class 类名{ // 省略内容} 这样的一个类就是抽象类为什么需要抽象 在java 三大特性之继承(重写)这一章中,我们以 Animal 为例,提到了子类对父类方法的重写。从类的角度看,动物可以有很多物种,不能将其描述为“动物是猫”这样具体的一个类;但所有物种都可以将其描述为“猫是动...

2021-11-02 15:13:32 57

原创 java 三大特性之继承(重写)

1、什么是继承 顾名思义,一个类派生出一个新的类,而这个新类具有旧类已定义的属性和方法,并且可以自主额外地封装独有的属性和方法,我们称这种能力为继承 其中,旧类被称为父类,新类被称为子类2、为什么需要继承 我们先来看这三个类public class Bird{ public String name; public double weight; public String breed; public void speak(){ /...

2021-10-31 17:28:29 324

原创 java 访问修饰符

前言 在生活中,我们经常会遇到这样一个情况:对于一份信息,有的人可以对它进行访问,而有的人却不能,如何界定谁可以去查看或操作文件,我们用访问权限来形容这种规则 在 java 中也会有这样的问题,如果界定谁可以去获取或更改属性或方法,我们用访问修饰符来形容这类情况分类private:只能被当前类自身或自身提供的方法访问或操作,其他类或其他包不能访问 friendly:默认访问修饰符,也是我们常说的 default ,只能被同一个包中的类访问 protected:...

2021-10-31 14:33:01 66

原创 java 三大特性之封装

1、什么是封装 在面向对象这一章中,我们已经了解到封装就是将一个类的特性和i行为作为属性和方法绑定在一起,这种绑定通过封装完成,这是广义上的封装 在面向对象中,除了将属性和方法绑定在一起进行封装,还需要将类的某些信息进行隐藏,使其不可视化,不允许外部程序直接访问,但能通过该类提供的方法来进行访问,这种操作即是狭义上的封装2、为什么需要封装 在产品开发的过程中,有部分信息我们是不希望被外部人员访问的,...

2021-10-31 13:56:19 134

原创 变量作用域

首先,我们先来看看这一段代码public class Student { public String studentNo; public String studentName; public int age; public char gender; public void Study() { int age = 50; System.out.println("好好学习,天天向上"); System...

2021-10-31 10:36:09 315

原创 构造方法和重载

1、重载的定义和意义 重载的定义 在一个类中,有多个方法重名,但参数的类型、个数或顺序不一样时,这类方法就叫方法重载public double calcSalary(Emp emp){ // 普通员工有基本工资、绩效工资 return emp.baseSalary+emp.perfSalary();}public double calcSalary(Leader leader){ // 项目组长有基本工资、绩效工资、领队工资 return l...

2021-10-31 00:40:03 3030

原创 java 类和方法

1、类的创建 在面向对象这一章中,我们知道了对象的定义、类的定义以及对象和类的关系,则创建对象首先需要创建一个类,创建一个类需要包含如下元素:类名、类属性和类方法// 先定义一个类名public class Student { // 定义类的属性 public String id; public String name; public int age; public char gender; // 定义类的方法 publ...

2021-10-30 23:43:30 341

原创 java 面向对象

1、什么是面向对象

2021-10-30 20:02:24 85

原创 java 数组查找

1、普通查找 对数组循环遍历,依次比较匹配,时查找算法中最基础,最简单的算法 int[] scores = {45, 62, 15, 78, 30}; int target = 62; int index = -1; // 保存查找到的位置 for (int i = 0; i < scores.length; i++) { // 用要查找的目标,依次与数组中的每个元素进行比较 ...

2021-10-30 16:32:16 2866

原创 java 排序算法基础版

1、冒泡排序 冒泡排序是排序方法中最为基础的一种方法,将数组中相邻的数值进行比较,若满足条件,则进行交换,否则不交换,当进行最后一次循环时,最大值(或最小值)将会出现在末尾;然后对数组进行循环,对每个元素进行操作,即可完成排序 需要注意的是循环结束条件。对于前一次,已经遍历 n 次排序选出了最大值,因此后一次循环次数应当减一(此时,第二大值与最大值比已经无意义) 我的老师交给我一句口诀:n个兄弟来排序,两两比较小靠前,外部循环 n-1(总遍历次数),...

2021-10-30 15:59:38 59

原创 浅谈 java 内存(堆栈、常量池)

在我们定义数据的时候,是否想过这些数据存放在哪儿呢? 我们先来粗略了解一下 常量池、stack(栈内存)和 heap(堆内存) 常量池 常量池,顾名思义,它是存放基本数据类型常量和字符串常量的一个内存区域,或者说它是存放字面值的一个内存区域对于基本数据类型(整型、浮点型、布尔型、字符型等)或字符串类型进行赋值的时候会先扫描常量池是否存在这样一个字面值,若存在,则会将变量指向它;若不存在,则会在常量池创建该值,再让变量指向它 ...

2021-10-30 13:14:49 641

原创 java 数组

1、什么是数组 以酒店庄园为例,一个房间对应一个数据,一层楼对应一维数组,一栋楼对应二维数组,一个庄园对应三维数组,高维数组可以容纳若干低维数组,以此类推。一个酒店可以开辟不同类型的房间,如单人间、双人间、情侣房、大床房等等,而数组不同,从创建之初,只能从一而终地容纳一种类型的数据。或者可以将它理解为一个容器,鞋柜只能装鞋,冰箱只能放食物,不能将鞋放到冰箱里,也不能将食物放到鞋柜里。因此,若是 int[] 类的数组,就只能放整型数据,不能容纳其他数据...

2021-10-30 12:07:47 106

原创 流程控制语句

1、顺序结构 语句默认为顺序结构,从上往下,从左往右 先声明变量a,并赋值10;接着声明b,并将a的值赋值给b;然后将20赋值给a;最后先打印a,再打印bint a = 10;int b = a;a = 20;System.out.println(a);System.out.println(a);2、选择结构 选择结构包含:if、switch if 语句:常与 else 连用,或与 else if … else … 等...

2021-10-28 21:42:12 147

原创 java 运算符

1、算数运算符 常见的算数运算符如下:加(+)减(-)乘(*)除(/)取余(%)自加(++)自减(--)int a = 10;int b = 5;int c = a + b; // 15int d = a - b; // 5int e = a * b; // 50int f = a / b; // 2int g = a % b; // 0 这里需要注意的是运算时的数据类型,以及自加自减int i = a++; // 10 当自加符号位于变量后方,先...

2021-10-28 20:44:12 46

原创 java 程序的三类错误

Java程序错误大致分为三类错误:编译错误、运行错误、逻辑错误编译错误:// 所写代码在语法上不符合规则,使得代码无法通过编译int x = 16.8;运行错误:// 代码符合手册规定,可以通过编译,但在运行时会报错int[] num = {2, 4, 6, 8, 10};System.out.println(num[5]);逻辑错误:// 代码编译正常,且运行没有问题,但运行结果与实际不符合int score = 59;if(score >= 60)

2021-10-28 19:51:39 1012

原创 centos中编写java程序

centos 中完成 java 环境配置之后,在编写 java 程序时,与 win 有一些不同,下面以所有程序猿的第一个程序"Hello,Java!"为例1、创建文件夹存放程序 在命令行输入:mkdir -p /root/javaDemo2、编写 java 源文件,该程序命名"Hello"(为书写方便,先进入 javaDemo 目录) 在命令行输入:cd /root/javaDemo 在命令行输入:vim Hello.java cd...

2021-10-26 20:29:10 2092 1

原创 centos中安装jdk

以centos1系统以及jdk1.8.0_192版本为例1、将jdk安装包上传到系统的根目录2、找到合适位置创建解压目录,我选择在 /usr/local/ 下创建目录 java 在命令行输入:mkdir -p/usr/local/java ,创建解压目录 mkdir(make directory):Linux命令,用于创建目录 java -p:mkdir 参数,确保父目录 local 已存在,不存在创建3、将上传的 jdk 安装包解压到第二...

2021-10-26 19:07:43 387

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除