自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JDBC批处理

批量处理允许将相关的SQL语句分组到批处理中,并通过对数据库的一次调用提交它们。 当一次向数据库发送多个SQL语句时,可以减少连接数据库的开销,从而提高性能。JDBC批处理分为Statement批处理和PrepareStatement批处理。Statement批处理步骤:使用createStatement()方法创建Statement对象。 使用setAutoCommit()将auto-commit设置为false 。 使用addBatch()方法在创建的语句对象上添加SQL语

2021-04-28 13:03:10 133

原创 SQL注入及预状态通道PreparedStatement

就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。 String username ="admin";

2021-04-27 20:45:03 173

原创 JDBC

JDBC( Java Database Connectivity)是一种用于执行SQL语句的Java API,能够为多种关系型数据库提供访问接口。JDBC库通常包括与数据库相关的以下几个功能:连接数据库 创建sql语句 在数据库中执行sql语句 查看和修改生成的记录1.JDBC的体系结构通常JDBC体系结构由两层组成。JDBC API:提供Java应用程序到JDBC管理器的连接 JDBC驱动程序 API:支持JDBC管理器到驱动程序的连接JDBC管理器使用相应数据库的驱动程序来实

2021-04-27 17:21:08 118

原创 浅析数据库事务

事务(Transaction)是由一系列对系统中数据进⾏访问与更新的操作所组成的⼀个程序执行逻辑单元。本文将从六个部分来解析事务。(1)事务的语法(2)事物的特性(3)事务并发问题(4)事务隔离级别(5)不同隔离级别锁的情况(6)隐式提交1.事务的语法事务的语法结构只包含三部分:开始、提交和回滚。语法分别为://开始start transaction;//或者也可以直接使用begin;//这里进行事务的书写//提交。确认当前的修改commit;

2021-04-26 15:09:45 115

原创 SQL多表查询

首先我们需要明确两张表中之间的关系是靠外键来维护的,而在哪张表中设置外键呢?我们的数据库表经常是一对多的关系,比如部门(一)和员工(多),专业(一)和学生(多),这时候我们就需要在多的一方设置一个字段为外键指向另一方的主键。而当有多对多的关系时,我们就需要建立第三张表作为中间表,表中至少有两个字段,这两个字段作为外键分别指向两张表的主键。多表查询有以下几种:1. 合并结果集:UNION 、 UNION ALL 2. 连接查询 2.1内连接 [INNER] JOIN ON 2.2外

2021-04-23 20:45:46 418

原创 数据库中数据完整性介绍

数据库的完整性介绍用来保证存放到数据库中的数据是有效的,即数据的有效性和准确性。而为了保证数据的有效性和准确性,就需要在创建表时给表中添加约束(当然也可以后续添加)。数据库完整性的分类: 实体完整性(行完整性) 域完整性(列完整性) 引用完整性(关联表完整性) 约束的分类: 主键约束:primary key 唯一约束:unique [key] 非空约束:not null 默认约束:default 自动增长:au

2021-04-23 11:33:05 651

原创 SQL语言简介

SQL:Structure Query Language(结构化查询语言) 各数据库厂商都支持ISO的SQL标准 各数据库厂商在标准的基础上做了自己的扩展 SQL 是一种标准化的语言,它允许你在数据库上执行操作,如创建项目Create,查询内容Read,更新内容Update,和删除条目Delete等,通常称为CRUD操作。 SQL语句分类: DDL(Data Defifinition Language):数据定义语言,用来定义数据库对象:库、表、列等。 DML(.

2021-04-16 22:29:11 409

原创 Java内省Introspector

内省(Introspector)是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法,是基于反射技术延伸出的一套api。JavaBean是一种特殊的类,主要用于传递数据信息。拥有无参构造器 所有属性私有, 所有属性提供get、set方法 实现了序列化接口 这种类, 我们称其为 bean类。Java提供了一套java.beans包的api , 对于反射的操作, 进行了封装,即内省。下面我们对这些api进行介绍。Introspector类——获取bean类信息.

2021-04-12 19:38:38 114

原创 Java反射机制

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想了解一个类,必须先要获取到该类的字节码文件对象。在Java中,每一个字节码文件,被加载到内存后,都存在一个对应的Class类型的对象。得到Class的三种方式:1. 如果在编写代码时, 已知类的名称, 且类已经存在, 可以通过 包名.类名.class 得到一个类的 类对象 2.

2021-04-12 16:43:27 94

原创 Java类加载器Classloader

.java文件经过编译成为了.class字节码文件,字节码文件需要类加载器加载到内存之后才能创建对象,执行代码。简介Java类加载器(Java Classloader)是Java运行时环境(Java Runtime Environment)的一部分,负责动态加载Java类到Java虚拟机的内存空间中。分类:java默认有三种类加载器,BootstrapClassLoader、ExtensionClassLoader、App ClassLoader。BootstrapClassLoader

2021-04-12 14:13:28 62

原创 java注解Annotation

注释只会存在于源文件中,即不会从.java文件编译到.class文件中而注解是一种可以“注释到代码执行期的一种注释机制”,又称为标注。简介Java 语言中的类、方法、变量、参数和包等都可以被标注。和注释不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。 主要用于编译格式检查、反射中解析、生成帮助文档、跟踪代码依赖等。内置注解 .

2021-04-12 11:08:50 58

原创 Java枚举enum

在JDK1.5 之前,我们定义常量都是: public static fianl.... 。JDK1.5引入了新的类型——枚举Enum。通过枚举我们可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。在枚举类型中定义的常量是该枚举类型的实例。格式:权限修饰符 enum 枚举名称 { 实例1,实例2,实例3,实例4; }示例:public enum Level { //括号代表的是构造方法,使用无参构造方法时可以不加括号 LOW(30

2021-04-11 00:14:06 47

原创 Java解析JSON

由于Java官方并没有给出解析JSON的方式,所以本篇博客主要讲谷歌的GSON和阿里的FastJson。GSON将对象转换为JSON字符串 引入JAR包 在需要转换JSON字符串的位置编写如下代码即可: String json = new Gson().toJSON(要转换的对象); 将JSON字符串转换为对象 引入JAR包 在需要转换Java对象的位置, 编写如下代码: 对象 = new Gson().fromJson(JSON字符串,对.

2021-04-10 14:50:00 143 1

原创 JSON

简介:JSON(JavaScript Object Notation): JS对象简谱 , 是一种轻量级的数据交换格式(客户端与服务器、程序与程序之间). 首先来直观的看一下java、js、xml和json怎样描述一个对象及其属性。java: class Book{ private String name; private String info; } Book b = new Book(); b.setName(“金苹果.

2021-04-10 13:46:43 74

原创 通过Java生成XML

步骤:通过文档帮助器 (DocumentHelper) , 创建空的文档对 Document doc = DocumentHelper.createDocument(); 通过文档对象, 向其中添加根节点 Element root = doc.addElement("根节点名称"); 通过根节点对象root , 丰富我们的子节点 Element e = root.addElement("元素名称"); 创建一个文件输出流 ,用于存储XML文件 FileOutputS

2021-04-09 23:12:03 210

原创 XML——DOM4J解析

解析步骤:引入jar文件 dom4j.jar 创建一个指向XML文件的输入流 FileInputStream fis = new FileInputStream("xml文件的地址"); 创建一个XML读取工具对象 SAXReader sr = new SAXReader(); 使用读取工具对象, 读取XML文档的输入流 , 并得到文档对象 Document doc = sr.read(fis); 通过文档对象, 获取XML文档中的根元素对象 Element root

2021-04-09 15:46:04 139

原创 XML解析方式

XML一共有四种解析方式——SAX解析、DOM解析、JDOM解析、DOM4J解析。其实本质上是前两种,JDOM是一个Java特定的解析方式,DOM4J是JDOM的分支。1. SAX解析解析方式是事件驱动机制。SAX解析器, 逐行读取XML文件解析 , 每当解析到一个标签的开始/结束/内容/属性时,触发事件。我们可以编写程序在这些事件发生时, 进行相应的处理。优点:分析能够立即开始,而不是等待所有的数据被处理 逐行加载,节省内存.有助于解析大于系统内存的文档 有时不必解析

2021-04-09 15:26:07 65

原创 XML介绍及语法

简介XML——可扩展标记语言(eXtensible Markup Language)。假设一个C/C++打工人写的代码想要和Java打工人写的代码之间进行交流,XML和JSON就是我们首选的格式。(XML和JSON通常指的都是字符串而不是文件)特性:xml具有平台无关性, 是一门独立的标记语言. xml具有自我描述性(可以描述自身,就像人的自我介绍)XML文件 .XML文件是保存XML数据的一种方式 XML数据也可以以其他的方式存在(如在内存中构建XML数据)。 不要.

2021-04-09 11:21:04 234

原创 网络编程——UDP

UDP——用户数据报协议, 与TCP协议不同, UDP的连接是不可信的. 数据发送的成功与失败 与 数据报是无关的.需要用到两个类:数据报套接字: DatagramSocket——用于发送 与 接收数据包的Socket//构造方法DatagramSocket(int port);//常用方法close() : 关闭套接字.send(DatagramPacket dp) : 将一个数据包dp 发送出去receive(DatagramPacket dp) : 接收一个数据包, 并存储到参

2021-04-08 15:44:28 82

原创 网络编程中加入多线程

上文谈到了最基本的服务器客户端网络编程。为了使服务器能与多个客户端进行交流,我们在网络编程中加入了多线程。public class SocketDemo { public static void main(String[] args) throws IOException { //搭建服务器 ServerSocket server = new ServerSocket(55564); System.out.println("服务器搭建完成"); while(true) {

2021-04-08 14:24:17 82

原创 网络编程——TCP程序

TCP 协议 的 C/S程序我们需要使用到两个类来编写TCP协议的C/S程序,双方使用socket(套接字,通信端点)进行交流:ServerSocket:搭建服务器 Socket:搭建客户端ServerSocket用于创建服务器。创建完毕后, 会绑定一个端口号。注意:参数port的范围是: 0-65535 (建议1025-65535) 然后此服务器可以等待客户端连接。Socket accept():此方法会导致线程的阻塞! 直到一个新的客户端连接成功, return Socket.

2021-04-08 14:10:15 323 7

原创 网络编程常识

1. 什么是计算机网络 分布在不同地域的计算机, 通过硬件等网络设备使用通信线路互相连接形成的一个网格系统。计算机网络, 可以很方便的进行信息的传递, 资源的共享!2. 什么是计算机的IP地址 IP地址 是计算机在互联网中的唯一标识 . 就像人在社会中的身份证号码. 3. 什么是网站的域名 域名可以简单的理解为, IP地址的别名. 更方便记忆, 当输入域名后(例如www.baidu.com) , 计算机会访问域名解析商 , 然后得到ip地址, 再进行访问. 4. 什么是计算机的

2021-04-08 13:23:54 69

原创 线程池ExecutorService

如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。线程池就是一个容纳多个线程的容器,池中的线程可以反复使用,省去了频繁创建线程对象的操作,节省了大量的时间和资源。 线程池的好处:降低资源消耗 提高响应速度 提高线程的可管理性Java中共包含四种线程池:缓存线程池、定长线程池、单线程线程池、周期性任务定长线程池。缓存线程池:缓存线程池的长度无限制。执行流程:判断线程池是否存在空闲

2021-04-07 19:42:24 150 1

原创 Java Lambda表达式

Lambda是函数式编程,就是为了不创建对象直接调用方法。一个接口必须只有一个方法才能使用Lambda表达式。不使用Lambda表达式时:public static void main(String[] args){ print(new MyMath() { public int sum(int x, int y) { return x+y; } },100,200);}public static void print(MyMath m, int x, in

2021-04-07 17:58:32 54

原创 线程创建的三种方法

最常用的两种方法——继承Thread类和实现Runnable接口1.继承Thread类class MyThread extends Thread{}public static void main(String[] args){ Thread t = new MyThread("线程名"); t.start();}2.实现Runnable接口class MyRunnable implements Runnable{}public static void main(

2021-04-07 17:07:45 77 2

原创 线程的六种状态

具体来说:1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了初始状态。2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。...

2021-04-07 16:51:47 182 1

原创 多线程通信——生产者和消费者

假设在一个饭店中有一个厨师(生产者)、一个服务员(消费者),还有食物三类。为了更明显的看到生产者消费者两个线程合作时产生的问题,先在在设置食物属性中间使其休眠。//食物static class Food{ private String name; private String taste; //为了更明显的看到生产者消费者不加休眠产生的问题,在设置中间使其休眠 public void setNameAndTaste(String name, String

2021-04-07 16:37:28 74 1

原创 数组实现约瑟夫环

题目:所有人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,剩下的人继续报数,记录最后留下的。package Array;import java.util.Scanner;public class ChooseCaptain { public static void main(String[] args) { System.out.println("请输入总人数:"); Scanner scanner = new Scanner(System.in.

2021-03-10 22:08:56 209

原创 JDK、JRE、JVM的区别

https://blog.csdn.net/ancientear/article/details/79483592

2020-11-03 15:21:13 36

原创 解释执行与编译执行以及JIT的区别

最近闲下来着手找工作,准备从头开始学一下java。看到解释执行和编译执行不是很理解二者区别,查阅资料写一下自己的理解。编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,翻译与执行是分开的,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;C,C++都是靠编译实现的。解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,翻译与执行一次性完成,所以运行速度是不如编译后的程序运行的快的,但是就启动效率而言,解释执行的速度更快,因为它不需要进行编译过程。总的来说,编

2020-11-03 11:43:49 1097

原创 keras使用multi_gpu_model多GPU拆分batshsize

先来看最终效果两块卡GPU的利用率都会占满,训练速度会肉眼可见的提升在此之前使用python的os库自带的GPU分配,代码如下os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # 按照PCI_BUS_ID顺序从0开始排列GPU设备os.environ["CUDA_VISIBLE_DEVICES"] = "1,0" # 设置当前使用的GPU设备仅为0号设备 设备名称为'/gpu:0'如果只使用这两行代码会出现仍然是单块卡的占用率跑满,另

2020-09-15 11:35:51 1695 1

原创 from scipy.misc import imread 报错原因

install pillow是前提scipy已经将imread等命令删除,官方文档中有说明“Functions from scipy.interpolate (spleval, spline, splmake, and spltopp) and functions from scipy.misc (bytescale, fromimage, imfilter, imread, imresize...

2019-10-23 10:29:56 326

原创 编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录

pythonimport numpy as npnp.get_include()得到:在Makefile.config找到PYTHON_INCLUDE:PYTHON_INCLUDE := /usr/include/python2.7 \ /usr/lib/python2.7/dist-packages/numpy/core/include加一...

2019-09-24 23:09:33 275

空空如也

空空如也

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

TA关注的人

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