JAVASE
文章平均质量分 86
kongfanyu
这个作者很懒,什么都没留下…
展开
-
第25章 JDBC核心技术第10节:手写ORM框架
CSDN上,有好多博客了,想学习的同学可以参考一下:纯手写ORM框架纯手写Mybatis框架原创 2020-11-19 09:49:47 · 89 阅读 · 0 评论 -
第25章 JDBC核心技术第9节:Apache-DBUtils实现CRUD操作
第9章:Apache-DBUtils实现CRUD操作9.1 Apache-DBUtils简介commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。API介绍:org.apache.commons.dbutils.QueryRunnerorg.apache.commons.dbutils.ResultSetHandler工具类:org.原创 2020-11-19 09:40:58 · 106 阅读 · 0 评论 -
原创 第25章 JDBC核心技术第8节:数据库连接池
第8章:数据库连接池8.1 JDBC数据库连接池的必要性在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤:在主程序(如servlet、beans)中建立数据库连接进行sql操作断开数据库连接这种模式开发,存在的问题:普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。这原创 2020-11-19 09:38:40 · 130 阅读 · 0 评论 -
第25章 JDBC核心技术第7节:DAO及相关实现类
第7章:DAO及相关实现类DAO:Data Access Object访问数据信息的类和接口,包括了对数据的CRUD(Create、Retrival、Update、Delete),而不包含任何业务相关的信息。有时也称作:BaseDAO作用:为了实现功能的模块化,更有利于代码的维护和升级。角色: 实体类(Dept)、接口(DeptDao)、实现类(DeptDaoImpl)、工具类(JdbcUtils)、BaseDao下面是项目中DAO使用的体现:层次结构:【手写BaseDao】packa转载 2020-11-19 09:35:42 · 130 阅读 · 0 评论 -
Thread类中join方法的实现原理
一.简介join()是Thread类的一个方法,根据jdk文档的定义,join()方法的作用,是等待这个线程结束,即当前线程等待另一个调用join()方法的线程执行结束后再往下执行。通常用于在main主线程内,等待其它调用join()方法的线程执行结束再继续执行main主线程。/*** Waits for this thread to die.**/public final void join() throws InterruptedException二.使用示例通过下面两个例子,我们来看原创 2020-11-12 11:07:56 · 632 阅读 · 2 评论 -
JDK1.8 新特性
jdk1.8新特性知识点:Lambda表达式函数式接口方法引用和构造器调用Stream API接口中的默认方法和静态方法新时间日期API在jdk1.8中对hashMap等map集合的数据结构优化。hashMap数据结构的优化,原来的hashMap采用的数据结构是哈希表(数组+链表),hashMap默认大小是16,一个0-15索引的数组,如何往里面存储元素,首先调用元素的hashcode方法,计算出哈希码值,经过哈希算法算成数组的索引值,如果对应的索引处没有元素,直接存放,如果有对象在,那么原创 2020-11-12 10:30:41 · 434 阅读 · 0 评论 -
mac版本 IDEA 集成 javap 命令
有时候开发想查看某个类的字节码指令,可以通过IDEA工具集成javap命令实现。打开preference->Tools->External tools->点击左下角加号新增一个工具弹出快捷键加入框,键入以下内容,其他都是默认注意:Program这个属性,网上很多是windos的教程,windos的文件目录斜杠是向右,而mac是向左,然后windos的javap这个指令文件带有.exe后缀,而mac没有后缀,否则会出现Cannot run programXXXX在想查原创 2020-08-01 18:39:36 · 712 阅读 · 0 评论 -
第3章 分支结构
课程回顾变量的概念: 变量是一块存储空间的表示,8种基本数据类型:整型: byte short int long浮点型: float double字符: char布尔: boolean引用数据类型:class定义的类, String Scannerinterface定义的接口数组类型 int[] nums = {1,2,3,4};运算符:算术运算符关系运算符逻辑运算符三元运算符赋值运算符移位运算符Scanner的用法Scanner是一个类,该类是jdk提供的一个原创 2020-07-17 14:21:33 · 336 阅读 · 0 评论 -
第2章 变量、数据类型、运算符
课程回顾java虚拟机的内存结构图:变量变量的概念计算机最初的功能是用来计算弹道导弹的飞行轨迹,二战期间,德国V2导弹威力很大;在运算过程中就会产生大量的中间过程数据,包括基础的数据也要存储到计算机才可以进行计算。问题:数据存储在哪里?冯诺依曼计算机体系结构:计算机计算过程中的数据存储在存储器: 内存;输入设备: 键盘、鼠标、摄像头、麦克风输出设备: 显示器、音响、打印机、投影仪等等存储设备: 主存储器( 内存 ),辅助存储器( 硬盘、优盘、光盘、移动硬盘等等 )处理设备: 中央处理原创 2020-07-17 14:19:23 · 626 阅读 · 0 评论 -
使用VSCode编写java文件注意的问题
问题由来:VSCode的默认编码格式是utf8; 所以我们新建的java文件或者html文件都是utf8编码的;但是如果我们在window下用cmd窗口用javac编译java文件的时候就会出现编码问题。因为windows操作系统默认的编码是GBK.这时如果在DOS界面用javac编译的时候出现如下问题:GBK无法映射UTF8编码的字符;其实不同的字符集都是有指定的编码格式的,所以同一个汉字在不同的字符编码格式下是不一样的;这就是问题由来。如何解决呢?三种办法:1、把当前文件改为GBK格式把当原创 2020-07-17 14:11:54 · 2165 阅读 · 0 评论 -
第20章 类加载器
类加载的机制的层次结构每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程称为类加载,这里我们需要了解一下类加载的过程,如下:加载:类加载过程的一个阶段:通过一个类的完全限定查找此类字节码文件,并利用字节码文件创建一个C原创 2020-06-30 19:27:37 · 278 阅读 · 0 评论 -
第1章 初始JAVA
java课程体系简介课程java工程师,后台开发;分为5个阶段;第一阶段: java基础: 数据类型、变量、控制语句、数组、String、面向对象、集合、IO、线程、反射、网络编程;第一阶段是整个课程的核心;是基础,直接关系到后面课程的学习。第二阶段: javaWeb开发: HTML、CSS、JavaScript、Servlet、JSP、MVC设计模式、三层结构、MySQL数据库、JDBC连接数据库。MyBatis框架的基础是JDBC、SpringMVC框架的基础Servlet; 阶段项目:小米商原创 2020-06-30 19:05:55 · 426 阅读 · 0 评论 -
第25章 JDBC核心技术第6节:数据库事务
6.1 数据库事务介绍事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。事务处理(事务操作):保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来;要么数据库管理系统将放弃所作的所有修改,整个事务**回滚(rollback)**到最初状态。为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一原创 2020-05-29 22:47:29 · 158 阅读 · 0 评论 -
第5章 JAVA输入输出操作
课程回顾List:有序可重复ArrayList 基于数组存储,默认长度10,扩容1.5倍;LinkedList 基于双向链表存储的,节点用的是静态内部类Node:包括三部分①prev上一个节点的引用②e表示数据③next下一个节点的引用,Vector 线程安全的List, 核心方法都是加速synchronized, 扩容2倍。Set:HashSet TreeSet LinkedHas...原创 2020-04-26 18:17:15 · 405 阅读 · 0 评论 -
第4章 集合框架
第4章 集合框架为什么需要集合框架我们在存储大量的数据的时候,首先想到的是数组;但是数组存在的问题: ①大小是固定的,受限②类型是固定。但是在项目开发过程中我们存储的数据大部分情况都不是固定的数量。存储公司的ERP的会员数,不是固定的,存储公司的供应商,这些都不是固定的数量。如何存储此类数据,java提供了一整套集合框架。java提供的集合框架为了提高编程的效率,java在jdk中提供一个...原创 2020-04-24 15:38:04 · 437 阅读 · 0 评论 -
第3章 异常处理
为什么需要异常处理生活中的异常: 做地铁过来上班,地铁晚点; 平时的地铁时间间隔3分钟,疫情的影响10分钟。吃早餐异常情况:没饭了。遇到异常情况怎么办? 解决异常: 做公交车、共享单车。想办法处理异常,生活继续,不能因为碰到一点点挫折就放弃人生。什么是异常处理异常的英文单词是exception,字面翻译就是“意外、例外”的意思,也就是非正常情况。事实上,异常本质上是程序上的错误,包括程序逻辑...原创 2020-04-22 15:54:22 · 669 阅读 · 0 评论 -
第25章 JDBC核心技术第5节:批量插入分页查询
5.1 批量执行SQL语句当需要成批插入或者更新记录时,可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率JDBC的批量处理语句包括下面三个方法:addBatch(String):添加需要批量处理的SQL语句或是参数;executeBatch():执行批量处理语句;clearBatch():清空缓存的数据通常我们会遇到两...原创 2020-03-30 19:46:58 · 304 阅读 · 0 评论 -
第25章 JDBC核心技术第4节:操作BLOB类型字段
4.1 MySQL BLOB类型MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。插入BLOB类型的数据必须使用PreparedStatement,因为BLOB类型的数据无法使用字符串拼接写的。MySQL的四种BLOB类型(除了在存储的最大信息量上不同外,他们是等同的)实际使用中根据需要存入的数据大小定义不同的BLOB类型。...原创 2020-03-28 20:38:15 · 222 阅读 · 0 评论 -
第25章 JDBC核心技术第3节
第3节:实现CRUD操作3.1 操作和访问数据库数据库连接被用于向数据库服务器发送命令和 SQL 语句,并接受数据库服务器返回的结果。其实一个数据库连接就是一个Socket连接。在 java.sql 包中有 3 个接口分别定义了对数据库的调用的不同方式:Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。PrepatedStatement:SQL 语句被预编...原创 2020-03-26 22:16:47 · 381 阅读 · 0 评论 -
第25章 JDBC核心技术第2节
第2节:获取数据库连接2.1 要素一:Driver接口实现类2.1.1 Driver接口介绍java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实...转载 2020-03-25 16:07:49 · 169 阅读 · 0 评论 -
第25章 JDBC核心技术第1节
第1节:JDBC概述1.1 数据的持久化持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。1.2 Java中的数据存...原创 2020-03-24 23:10:29 · 187 阅读 · 0 评论 -
第19章 枚举
枚举知识点枚举的概念enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下:enum Color { RED, GREEN, BLUE }//Day.class 枚举类型,使用关键字enumenum Day { MONDAY, TUESDAY, WEDNESDAY, THURS...原创 2020-01-28 00:43:22 · 205 阅读 · 0 评论 -
第18章 JAVA NIO
Java NIO (New IO)是从Java1.4版本开始引入的一个新的IO API,可以替代次奥准的Java IO API。NIO支持面向缓冲区的,基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。比较NIO与IOIO模型IONIO通信面向流(Stream Oriented)面向缓冲区(Buffer Oriented)处理阻塞IO(Block...原创 2020-01-27 22:03:58 · 326 阅读 · 0 评论 -
第17章 泛型
泛型的概念感谢原作者: VieLei ; 我的在原作者基础上完善更加容易理解的案例, 原地址再次表示感谢!泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中...原创 2020-01-10 20:48:54 · 189 阅读 · 0 评论 -
第16章 注解
第16章 注解课程回顾静态代理: 只能代理一类对象动态代理: 可以代理任意类型对象,Proxy 类: 创建代理对象InvocationHandler接口: 调用处理器负责调用方法, 是代理对象和真实对象之间的桥梁, 在调用方法之前和之后做一些操作.CGLIB实现动态代理Enhancer创建代理对象MethodInterceptor: 方法拦截器: 类似 InvocationH...原创 2020-01-10 20:36:25 · 522 阅读 · 0 评论 -
第13章 多线程
课程回顾文件类: File创建文件 createNewFile删除文件 delete判断文件是否存在: exists获取名称: getName获取父路径: getParent获取绝对路径: getAbsolutePath获取文件列表: listFile, listRoot,是否可读: canRead是否可写: canWrite获取文件长度: length 字节数文件读写...原创 2020-01-02 20:27:01 · 267 阅读 · 0 评论 -
第14章 网络编程
课程回顾多线程,创建线程的三种方式:①继承Thread类②实现Runnable接口③实现Callable接口 call 可以返回值, FutrueTask, Thread线程同步:①synchronized 同步代码块 同步方法②Lock lock.lock() lock.unlock();死锁:①锁的嵌套使用②锁的顺序不一致生产者和消费者模型生产者和消费者操...原创 2020-01-02 20:00:15 · 298 阅读 · 0 评论 -
第15章 反射
第15章 反射反射的概念JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。我们创建对象的方式: Date date = new Date(); 在编译阶段类型是确定的; 反射可以提供运行期创建对象的方式. 客车: 在车站里载人, ...原创 2020-01-02 19:40:55 · 435 阅读 · 0 评论 -
多线程文件复制工具--复制图片
public static void main(String[] args) throws Exception { File file = new File("C:\\Users\\Administrator\\Pictures\\girl.jpg"); File destFile = new File("d:\\girl.jpg"); System.out.println(file...原创 2019-12-31 17:45:51 · 278 阅读 · 0 评论 -
多线程文件复制工具
package com.hanker;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class ThreadCopyPic { public static void main(String[] args) thro...原创 2019-12-31 17:27:01 · 452 阅读 · 2 评论 -
几个 java 爬虫
package com.oa.test;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.select.Elements;import java.io.*;import java.net.URL;import java.net.URLConnection;import java.uti...原创 2019-10-28 12:06:40 · 244 阅读 · 0 评论 -
线程的状态模拟
class MyThread extends Thread{ public void run(){ try{ Thread.sleep(1000); }catch (Exception e){ System.out.println(e.getMessage()); } ...原创 2019-07-25 18:33:58 · 170 阅读 · 0 评论 -
查看Proxy产生的代理对象
package com.demo;import java.io.FileOutputStream;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import sun.misc.ProxyGenerator;public class DynamicPro原创 2017-09-12 15:28:32 · 1270 阅读 · 0 评论 -
JAVA读取属性文件含中文字符
package com.demo;import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.nio.charset.Charset; import java.util.Date; import java.util.HashMap; import java.util原创 2016-10-28 11:16:14 · 1335 阅读 · 0 评论 -
JDBC调用存储过程 返回多结果集
package com.demo1;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.ResultSet;import com.demo.JdbcUtil;//调用无参存储过程 包括查询和删除public class Demo6 {//1.存储原创 2016-10-28 11:12:36 · 3015 阅读 · 0 评论 -
一维数组选择排序
第一种方法import java.util.Arrays;public class Test { /** * @param args */ public static void main(String[] args) { int[]原创 2011-06-02 16:06:00 · 1046 阅读 · 0 评论 -
JAVA 控制台清屏
看到网上有人讨论Java如何实现对控制台清屏,看到的内容不是很理想。所以把这些内容总结一下。直观一点,先看下代码吧import static java.lang.System.out;/** * Build by netbeans * @author Felix Wu */public class ConsleRewriteTest { public static void ma转载 2011-06-09 23:11:00 · 3041 阅读 · 0 评论 -
JAVA 控制台清屏 2
最近写了个java的定时器程序,因为在C/C++中有system("cls")可以进行清屏,然而在java中却从来没发现过相关功能的方法,在网上搜了很久也没找到成功的解决方案,所有的方案都是带有喜剧性的,1.Runtime.getRuntime().exec("cmd /c cls");但这种是建立子线程,不能控制当前屏幕的清屏,2.就更搞笑了,System.out.println("转载 2011-06-09 23:12:00 · 17401 阅读 · 2 评论 -
java调用动态链接库(dll)
java调用动态链接库(dll)原创 2009-06-18 16:49 用java调用dll本是一个不难的事情,但往往会给初学者带来的一点麻烦,网络上很多调用dll的例子都参差不齐,往往省略了一些步骤,对他们来说觉得简单不需要说明,对初学者来说确很重要,结果不想可知。因此在这里仔细的说明一下,希望给初学者们带来些许方便,高手绕过。。一,首先在C盘建立项目文件夹转载 2011-06-09 23:16:00 · 6963 阅读 · 3 评论 -
JAVA static 关键字的理解
<br />用 static 修饰的变量是类变量,静态变量,被所有实例共享;注意与实例变量的区别<br />用 static 修饰的方法时类的方法,也称静态方法,<br />下面这个例子可以说明类变量与实例变量的区别:<br /> <br />//可以作为两个阶段<br />public class Bank {<br /> //静态变量被所有实例共享<br /> static double account = 0;<br /> //实例变量,每个对象都有自己的存储空间<br /> double perso原创 2011-05-27 22:37:00 · 661 阅读 · 0 评论