自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SWING 的容器 JFRAME和JDIALOG

步骤 1 : JFrame JFrame是最常用的窗体型容器,默认情况下,在右上角有最大化最小化按钮 JFrame package gui; import javax.swing.JButton; import javax.swing.JFrame; public class TestGUI { public static void main(String[] args) { //普通的窗体,带最大和最小化按钮 JFrame f = new JFrame("LoL"); f.setS

2020-12-28 14:49:38 228

原创 SWING 如何进行事件监听

示例 1 : 按钮监听 创建一个匿名类实现ActionListener接口,当按钮被点击时,actionPerformed方法就会被调用 按钮监听 package gui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import java

2020-12-18 14:32:29 685 1

原创 JDBC 数据库连接池

步骤 1 : 数据库连接池原理-传统方式 当有多个线程,每个线程都需要连接数据库执行SQL语句的话,那么每个线程都会创建一个连接,并且在使用完毕后,关闭连接。 创建连接和关闭连接的过程也是比较消耗时间的,当多线程并发的时候,系统就会变得很卡顿。 同时,一个数据库同时支持的连接总数也是有限的,如果多线程并发量很大,那么数据库连接的总数就会被消耗光,后续线程发起的数据库连接就会失败。 数据库连接池原理-传统方式 步骤 2 : 数据库连接池原理-使用池 与传统方式不同,连接池在使用之前,就会创建好一定数量的连接。

2020-12-08 14:36:29 298

原创 基于JDBC设计DAO的实例

DAO接口 package jdbc; import java.util.List; import charactor.Hero; public interface DAO{ //增加 public void add(Hero hero); //修改 public void update(Hero hero); //删除 public void delete(int id); //获取 public Hero get(int id); //查询 public List list(); //分页查询 publ

2020-11-27 14:39:57 162

原创 如何在JDBC中使用事务

不使用事务的情况 没有事务的前提下 假设业务操作是:加血,减血各做一次 结束后,英雄的血量不变 而减血的SQL 不小心写错写成了 updata(而非update) 那么最后结果是血量增加了,而非期望的不变 package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class TestJDBC {

2020-11-18 15:32:42 522 1

原创 在JDBC中使用预编译Statement 以及它的优点

步骤 1 : 相同点 execute与executeUpdate的相同点:都可以执行增加,删除,修改 package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class TestJDBC { public static void main(String[] args) { try { Clas

2020-11-10 15:36:41 243

原创 在JDBC中使用预编译STATEMENT 以及它的优点

步骤 1 : 使用PreparedStatement 和 Statement一样,PreparedStatement也是用来执行sql语句的 与创建Statement不同的是,需要根据sql语句创建PreparedStatement 除此之外,还能够通过设置参数,指定相应的值,而不是Statement那样使用字符串拼接 注: 这是JAVA里唯二的基1的地方,另一个是查询语句中的ResultSet也是基1的 package jdbc; import java.sql.Connection; import ja

2020-10-19 08:06:24 182

原创 JDBC的增、删、改

CRUD是最常见的数据库操作,即增删改查 C 增加(Create) R 读取查询(Retrieve) U 更新(Update) D 删除(Delete) 在JDBC中增加,删除,修改的操作都很类似,只是传递不同的SQL语句就行了。 步骤 1 : 增加 这段代码就是Hello JDBC中的代码,用于向数据库中插入数据 package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLExcep

2020-10-09 08:17:34 303

原创 JAVA 如何设计支持泛型的类

不支持泛型的Stack 以Stack栈为例子,如果不使用泛型 当需要一个只能放Hero的栈的时候,就需要设计一个HeroStack 当需要一个只能放Item的栈的时候,就需要一个ItemStack HeroStack.java package generic; import java.util.LinkedList; import charactor.Hero; public class HeroStack { LinkedList<Hero> heros = new LinkedList&lt

2020-09-28 08:17:10 208

原创 JAVA 什么是 泛型?

示例 1 : 不使用泛型 不使用泛型带来的问题 ADHero(物理攻击英雄) APHero(魔法攻击英雄)都是Hero的子类 ArrayList 默认接受Object类型的对象,所以所有对象都可以放进ArrayList中 所以get(0) 返回的类型是Object 接着,需要进行强制转换才可以得到APHero类型或者ADHero类型。 如果软件开发人员记忆比较好,能记得哪个是哪个,还是可以的。 但是开发人员会犯错误,比如第20行,会记错,把第0个对象转换为ADHero,这样就会出现类型转换异常 packag

2020-09-18 14:29:27 254

原创 JAVA的SUPER关键字

步骤 1 :准备一个显式提供无参构造方法的父类 准备显式提供无参构造方法的父类 在实例化Hero对象的时候,其构造方法会打印 “Hero的构造方法 " package charactor; import property.Item; public class Hero { String name; //姓名 float hp; //xp float armor; //护甲 int moveSpeed; //移动速度 public void useItem(Item i){

2020-09-08 16:07:19 112

原创 JAVA 自定义异常

示例 1 : 创建自定义异常 一个英雄攻击另一个英雄的时候,如果发现另一个英雄已经挂了,就会抛出EnemyHeroIsDeadException 创建一个类EnemyHeroIsDeadException,并继承Exception 提供两个构造方法 无参的构造方法 带参的构造方法,并调用父类的对应的构造方法 class EnemyHeroIsDeadException extends Exception{ public EnemyHeroIsDeadException(){ } public

2020-09-04 08:32:33 203

原创 使用SCANNER读取整数

步骤 1 : 使用Scanner读取整数注意: 使用Scanner类,需要在最前面加上 import java.util.Scanner; 表示导入这个类,才能够正常使用 使用Scanner读取整数 import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); int a = s.nextInt(); System

2020-08-28 15:46:24 1740 1

原创 JAVA. IP地址与端口概念

步骤 1 : IP地址 在网络中每台计算机都必须有一个的IP地址; 32位,4个字节,常用点分十进制的格式表示,例如:192.168.43.180 127.0.0.1 是固定ip地址,代表当前计算机,相当于面向对象里的 “this” 步骤 2 : 端口 顶 折 两台计算机进行连接,总有一台服务器,一台客户端。 服务器和客户端之间的通信通过端口进行。如列: ip地址是 192.168.43.180的服务器通过端口 8080 与ip地址是192.168.1.189的客户端 的1087端口通信 步骤 3 : 获取

2020-08-09 19:31:55 470

原创 JAVA.UTIL.ARRAYS类常用方法

示列 1 : 数组复制 与使用System.arraycopy进行数组复制类似的, Arrays提供了一个copyOfRange方法进行数组复制。 不同的是System.arraycopy,需要事先准备好目标数组,并分配长度。 copyOfRange 只需要源数组就就可以了,通过返回值,就能够得到目标数组了。 除此之外,需要注意的是 copyOfRange 的第3个参数,表示源数组的结束位置,是取不到的。 import java.util.Arrays; public class HelloWorld {

2020-06-15 20:25:06 2626

原创 Java一个自定义线程池

示例 1 : 一个自定义线程池 一个自定义的线程池,虽然不够完善和健壮,但是已经足以说明线程池的工作原理 缓慢的给这个线程池添加任务,会看到有多条线程来执行这些任务。 线程7执行完毕任务后,又回到池子里,下一次任务来的时候,线程7又来执行新的任务 package multiplethread; import java.util.LinkedList; public class ThreadPool { // 线程池大小 int threadPoolSize; // 任务容器 LinkedList<R

2020-06-08 20:31:06 294

原创 Java 如何开发一个自定义线程池

示例 1 : synchronized 同步的方式 package multiplethread; import java.text.SimpleDateFormat; import java.util.Date; public class TestThread { public static String now(){ return new SimpleDateFormat("HH:mm:ss").format(new Date()); } public static void main(S

2020-05-28 17:47:55 217

原创 JAVA的四种访问修饰符

示例 1 : 类之间的关系 类和类之间的关系有如下几种: 以Hero为例 自身:指的是Hero自己 同包子类:ADHero这个类是Hero的子类,并且和Hero处于同一个包下 不同包子类:Support这个类是Hero的子类,但是在另一个包下 同包类: GiantDragon 这个类和Hero是同一个包,但是彼此没有继承关系 其他类:Item这个类,在不同包,也没有继承关系的类 示例 2: private 私有的 package charactor; import propert.

2020-05-18 12:01:06 198

原创 JAVA 中的SWITCH语句?

示例 1 : switch switch可以使用byte,short,int,char,String,enum 注: 每个表达式结束,都应该有一个break; 注: String在Java1.7之前是不支持的, Java从1.7开始支持switch用String的,编译后是把String转化为hash值,其实还是整数 注: enum是枚举类型,在枚举章节有详细讲解 public class Hel...

2019-09-15 21:20:27 394

原创 JAVA 中的If条件语句?

示例 1 : if 如果表达式1的值是true, 就执行表达式2 public class HelloWorld { public static void main(String[] args) { boolean b = true; //如果成立就打印yes if(b){ System.out.println("yes"); } } ...

2019-09-15 21:16:01 706

原创 JAVA 中的作用域?

示例 1 : 字段,属性,Field 当一个变量被声明在类下面 变量就叫做字段 或者属性、成员变量、Field 比如变量i,就是一个属性。 那么从第2行这个变量声明的位置开始,整个类都可以访问得到 所以其作用域就是从其声明的位置开始的整个类 public class HelloWorld { int i = 1; int j = i; //其他的属性可以访问i public void metho...

2019-09-15 21:07:14 182

原创 JAVA 中的命名规则?

示例 1 : 命名规则 变量命名只能使用字母 数字 $ _ 变量第一个字符 只能使用 字母 $ _ 变量第一个字符 不能使用数字 注:_ 是下划线,不是-减号或者—— 破折号 int a= 5; int a_12= 5; int $a43= 5; int a434= 5; //第一个是数字,是不行的 int 34a= 5; 示例 2: 使用完整的单词命名,但不是缩写 在命名的时候,尽量使用完整的单...

2019-09-15 21:02:09 258

原创 JAVA 中基本类型的类型转换?

示例 1 : 转换规则 打个比方精度高的数据类型就像容量大的箱子,可以放更大的数据 精度低的数据类型就像容量小的箱子,只能放更小的数据 小箱子往大箱子里倒东西,大箱子怎么都放得下 大箱子往小箱子里倒东西,有的时候放的下,有的时候就会有溢出 需要注意的一点是 虽然short和char都是16位的,长度是一样的 但是彼此之间,依然需要进行强制转换 public class HelloWorld { p...

2019-09-15 20:51:48 112

原创 怎么使用 JAVA 构造方法?

示例 1 : 什么是构造方法 方法名和类名一样(包括大小写) 没有返回类型 实例化一个对象的时候,必然调用构造方法 package com.ty.servlet; public class Dawei { String name; float hp; float armor; int moveSpeed; // 方法名和类名一样(包括大小写) /...

2019-08-17 20:48:23 624

原创 JAVA 中的this 是什么意思?

示例 1 : this代表当前对象 package com.ty.servlet; public class Dawei { String name; //姓名 float hp; float armor; int moveSpeed; //打印内存中的虚拟地址 public void showAddressInMemory(){ System.out.println(“打印this看到的虚拟地址...

2019-08-17 20:45:08 9540

原创 JAVA的多态

示例 1 : 操作符的多态 同一个操作符在不同情境下,具备不同的作用 如果+号两侧都是整型,那么+代表 数字相加 如果+号两侧,任意一个是字符串,那么+代表字符串连接 package cm.po; public class beifan { public String name; protected float hp; public static void main(String[] args)...

2019-08-07 21:05:39 126

原创 JAVA的重写方法

示例 1 : 父类ltem 父类Item有一个方法,叫做effect package com.ly.util; public class Item { String name; int price; public void buy(){ System.out.println(“搜索”); } public void effect(){ System.out.println(“查询世界,搜索成功”)...

2019-08-07 21:02:18 207

原创 JAVA的io数据流

示例 1 : 直接进行字符串的读写 使用数据流的writeUTF()和readUTF() 可以进行数据的格式化顺序读写 如本例,通过DataOutputStream 向文件顺序写出 布尔值,整数和字符串。 然后再通过DataInputStream 顺序读入这些数据。 package cm.po; import java.io.DataInputStream; import java.io.Data...

2019-07-26 15:42:55 171

原创 JAVA的io缓存流

示例 1 : 使用缓存流读取数据 缓存字符输入流 BufferedReader 可以一次读取一行数据 package cm.po; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class Sder { public...

2019-07-26 15:36:52 210

原创 JAVA的io字符流

示例 1 : 使用字符流读取文件 FileReader 是Reader子类,以FileReader 为例进行文件读取 package cm.po; import java.io.File; import java.io.FileReader; import java.io.IOException; public class beifan { public static void main(Stri...

2019-07-17 21:09:38 137

原创 JAVA的io关闭流的方式

示例 1 : 在try中关闭 在try的作用域里关闭文件输入流,这样做有一个弊端; 如果文件不存在,或者读取的时候出现问题而抛出异常,那么就不会执行这一行关闭流的代码,存在巨大的资源占用隐患。 不推荐使用 package cm.po; import java.io.File; import java.io.FileInputStream; import java.io.IOException; p...

2019-07-17 20:59:32 1003

原创 JAVA的复制数组

示例 : 复制数组 src: 源数组 srcPos: 从源数组复制数据的起始位置 dest: 目标数组 destPos: 复制到目标数组的起始位置 length: 复制的长度示例 : 定位 indexOf 判断字符或者子字符串出现的位置 contains 是否包含子字符串 package cm.po; public class beifan { public static void main(...

2019-07-07 19:59:31 184

原创 JAVA的增强型for循环

示例 1 : 增强型for循环 package cm.po; public class beifan { public static void main(String[] args) { int values [] = new int[]{18,62,68,82,65,9}; //常规遍历 for (int i = 0; i < values.length; i++) { int each ...

2019-07-07 19:55:56 617

原创 JAVA的数组排序

示例 1 : 选择排序法 选择法排序的思路: 把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来 比较完后,第一位就是最小的 然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来 比较完后,第二位就是第二小的 以此类推 package cm.po; public class Sder { public static void main(String[] arg...

2019-06-27 20:25:38 114

原创 JAVA的操纵字符串(三)

示例 : 替换 replaceAll 替换所有的 replaceFirst 只替换第一个package cm.po; package cm.po; public class Sder { public static void main(String[] args) { String sentence = "开始,起来,准备,就绪,时间即使战争,赢了时间就赢得未来。"; ...

2019-06-27 20:19:57 139

原创 JAVA的操纵字符串(二)

示例 1 : 分隔 split 根据分隔符进行分隔 package cm.po; public class Sder { public static void main(String[] args) { String sentence = "阿衰,你的臭豆腐,被你的狗偷吃了"; //根据,进行分割,得到3个子字符串 ...

2019-06-17 19:52:47 124

原创 JAVA的操纵字符串(一)

示例 : 获取字符 charAt(int index)获取指定位置的字符 package cm.po; public class Sder { public static void main(String[] args) { String sentence = "累死我第三级拉丝粉卢卡库分类拉开发"; char c = sentence.cha...

2019-06-17 19:47:03 168

原创 JAVA的数字与字符串 格式化输出

如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐 使用格式化输出,就可以简洁明了 %s 表示字符串 %d 表示数字 %n 表示换行 示例 : 格式化输出 public class Sder { public static void main(String[] args) { String name ="林某某"; int kill = ...

2019-06-09 19:53:06 5511

原创 JAVA中使用字符串转换为数字

示例 1 : 四舍五入, 随机数,开方,次方,π,自然常数 public class Sder { public static void main(String[] args) { float f1 = 5.4f; float f2 = 5.5f; //5.4四舍五入即5 System.out.println(Math.round(f1)); //5.5四舍五入即6 System.out.prin...

2019-06-09 19:46:21 5858

原创 JAVA的日期Calendar

示例 : Calendar与Date进行转换 import java.util.Calendar; import java.util.Date; public class Sder { public static void main(String[] args) { //采用单例模式获取日历对象Calendar.getInstance(); Calendar c = Calendar.getIn...

2019-06-09 19:40:17 272

空空如也

空空如也

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

TA关注的人

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