自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 pl/sql(1)

sql运行环境sessionalter session setnls_date_format yyyy mm dd hh24:mi:ssnls_language MARCH 三月nls_territory $ ¥锁不释放DML锁(表级共享锁,行级排他锁)DDL锁(DDL排他锁)所占回滚段资源不释放(公共资源)数据库默认事务隔离级别:read committed除了自己,其他session看不见你的数据同一个用户的不同session:并发问题同一个数据库里不同用户的sessionSE

2020-10-04 23:30:29 130

原创 html笔记

javascript概述:是一种基于对象和事件驱动的解释性脚本语言,应用于网页的编程处理.alert<input type="button" value="第一个按钮" onclick='alert("Hello world");'>head封装<script type="text/JavaScript" language="JavaScript"> function firstMethod() {

2020-10-02 12:34:43 146

原创 html笔记

什么是htmlhtml(hypertext markup language):超文本标记语言,一种纯文本类型的语言用来设计网页的标记语言用该语言编写的文件,以.html或者.htm为后缀有浏览器解释执行html是一个扩展性很强的语言,可以嵌套用脚本语言编写的程序段,如:VBScript,JavaScripthtml概述和基础语法html是一种编写网页的解释性的标记语言,结合css和js实现功能复杂的页面解析性:翻译,非编译—代码如果有错误,可能导致显示出来的与希望得到的不同,而不会报错

2020-09-24 20:06:13 171

原创 sql视图和索引.序列

create table account_90as select * from ACCOUNT where 1=2;可以从已有表的基础上创建一个表什么是view视图在数据库中不存储数据值,即不占空间只在系统表中存储对视图的定义视图实际就是一条select语句类似windows中的快捷方式create or replace view xxxas select a from t10创建一张名为xxx的视图,来自t10的列名为a(可以多列,可以*号)的数据视图的应用场景

2020-09-21 23:06:56 203

原创 SQL事务

什么是事务事务是由一组DML语句和commit/rollback组成,是改变数据库数据的最小逻辑单元.如果是commit,表示数据入库;如果是rollback,表示取消所有的DML操作.事务的结束-commit/rollback-DDL语句自动提交(commit)事务的开始-上一个事务的结束就是下一个事务的开始事务的特性事务的特性:ACID原子性(atomicity)-一个事务或者完全发生,或者完全不发生一致性(consistency)-事务把数据库从一个一致状态转变到另一个状

2020-09-20 16:24:01 71

原创 sql约束

约束约束的作用面临的问题-某列必须有值且唯一-某列的取值受到另一列取值的限制数据库提供的解决方法-限制无效的数据进入到表中-数据库层面的"安检"约束的类型约束名意思primary key主键约束unique key唯一键约束not null非空约束references foreign key外键约束check检查约束create table test( c1 number co

2020-09-20 02:09:29 362

原创 SQL(select)集合运算

集合运算若将两张表看出集合,匹配问题就是集合运算中的交集若将两张表看出集合,不匹配问题就是集合运算中的差匹配问题+不匹配问题就是集合运算中的并集集合运算符union/union allintersect 交集minus 差集合运算要求两个select语句是同构的,即列的个数和数据类型必须一致union的结果集为两个查询结果的并集,是去掉重复值的union all的结果集为两个查询结果的并集,是包含重复值的intersect的结果集为两个查询结果的交集,不包含重复值minus的结

2020-09-19 14:40:37 988

原创 SQL多表连接 的种类

多表连接的种类根据结果集生成的规则不同,连接可以分为:交叉连接(cross join)—笛卡尔积内连接(inner join)—解决匹配问题外连接(outer join)—解决不匹配问题 ,表的所有记录出现在结果集交叉连接假设table1表中有m条记录,table2表中有n条记录,交叉连接产生的结果集为m*n该连接产生的结果集称为笛卡尔积内连接语法如果有多个条件表达式,on关键字后面跟一个,其余用and条件连接先根据on和and条件对要连接的表进行过滤,将过滤后的结果集进行内

2020-09-19 09:49:38 667

原创 组函数&多列子查询

组函数组函数操作在一组行(记录)上,每组返回一个结果函数用途&可以使用种类avg(distinct|all|n)平均值 (number)sum(distinct|all|n)求和 (number)count(distinct|all|expr|*)计数 (number char date)max(distinct|all|expr)最大值 (number char date)min(distinct|all|expr)最小值 (numb.

2020-09-17 21:21:08 139

原创 SQL数据库操作(2)

用order by子句对查询出来的结果进行排序,就是对select子句的计算结果排序ASC–升序DESC–降序order by是select语句中最后一个子句语法顺序select from where order byselect from ACCOUNT order by CREATE_DATE desc;selectfrom COST order by BASE_COST desc;第二个发现有空值,并且在最上面select BASE_COST*12 yaer_cost from

2020-09-16 17:25:13 77

原创 SQL数据库操作(1)

SQLDDL:column(列)表头:structure(结构)name,datatype,length,constraint(约束)create table创建表alter table修改表结构drop table删除表DML:化行:填数据:row(行)insert 增加一行update:更新某些行的某些列的值,改格里的内容delete:删除一行TCL(transaction control lang):transaction:事务,交易commit:提交 相当于ctrl+s 保存

2020-09-15 20:04:36 76

原创 网络连接模型 Socket和ServerScocket

网络连接模型C/S模式客户端-服务端 client-serverC/S中,客户端程序要独立开发.server也要独立开发.C/S的优势:效果好,易操作性好.C/S的劣势:维护难度高.需要用户有额外的操作.B/S结构浏览器-服务器B/S的优势:客户端统一,通信协议一直(http协议).维护难度低B/S的劣势:效果差一些.Socket和ServerScocketServerSocket 用于打开服务端口,等待客户端连接运行在服务端.Socket用于连接指定服务器的指定端口.运行在客户端.

2020-09-14 01:27:45 96

原创 Object关于线程的方法--wait()/notify()

Object关于线程的方法wait()/notify()当一个线程调用了某个对象的wait()方法后,该线程进入等待阻塞.就是在调用wait()方法的对象上等待.只有调用了这个对象的notify()方法后,该线程才能解除等待阻塞,进入runnable状态继续并发运行.public class WaitNotifyDemo { public static boolean finish=false; public static void main(String[] args) {

2020-09-13 19:44:04 82

原创 同步和异步&解决线程安全问题

同步和异步同步:执行有先后顺序异步:执行没有顺序.各执行各的,效率高线程异步操作的安全问题当多线程访问同一段资源时,可能产生线程安全问题.这时候,我们需要将异步的访问操作变成同步的.换句话说,对于这段资源的引用多线程要有先后顺序的访问以线程访问结束,另一个线程才能访问解决线程安全问题解决的办法是,对访问数据的逻辑加锁,使其访问变成同步操作关键字synchronize(同步化)synchronize可以修饰方法.那么该方法就是同步的.换句话说,该方法同一时间内只可能有一个线程执.

2020-09-13 19:14:46 1247

原创 守护线程

System.gc(); 通知虚拟机尽快做一次回收工作.也不是说调用就回收.只能是尽快.守护线程(后台线程)当java进程中没有一个前台线程,当前进程停止.后台线程的设置要在该线程启动前,这一点需要注意.setDaemon(boolean tf):当参数为true时,该线程被设为后台线程.后台线程演示>public class TitanicDemo { public static void main(String[] args) { //前台线程.

2020-09-13 14:22:49 59

原创 lambda的应用

当接口只有一个要实现的抽象方法时,可以使用java8新特性lambdapublic class TestLambda { public static void main(String[] args) { new Thread( new Runnable() { @Override public void run() { Sy

2020-09-13 11:15:27 91

原创 睡眠阻塞&中断睡眠阻塞&线程优先级

线程中的几个概念线程调度机制:统一管理所有线程,分配cpu时间片给需要并发操作的线程时间,获取时间片的线程被cpu执行时间片:时间片段,就是一个线程能被cpu执行的时间.获得cpu的时间片的线程进入running状态线程:需要并发运行的任务.线程start()方法:将线程纳入到线程调度机制,得已并发操作.线程中和生命周期相关的几个方法staitc void sleep(long time):使当前线程进入睡眠阻塞.休眠指定的time毫秒,休眠结束后重新回到runnable状态,等待再次获取.

2020-09-13 10:38:41 160

原创 (线程)Runnable接口

Runnable接口该接口规定了可以运行的任务.实现该接口需要重写run方法.将任务逻辑定义在其中.使用Runnable接口就是要将线程与任务解耦.public class RunnableSayMe implements Runnable{ @Override public void run() { for(int i=0;i<10000;i++){ System.out.println("我是修水管的马里奥"); .

2020-09-12 22:43:54 74

原创 (线程)Thread接口

多线程计算机同时执行一件事情,所以宏观上看,所有程序时同时运行的,微观上是走走停停的,这种现象叫做并发运行对于操作系统而言,并发执行的任务叫做进程对于程序而言,并发执行的任务叫线程Thread类其每一个实例代表一个线程线程其内部可以定义可以并发操作的任务方法继承Thread并重写run方法将需要并发执行的任务逻辑定义在该方法里面线程Thread类有一个重要的方法start():启动线程,并发执行run方法中的逻辑.所以,run方法是会被自动调用的,我们永远不会主动调用.

2020-09-12 22:05:04 331

原创 字节数组输入输出流 ByteArrayInputStream&ByteArrayOutputStream

字节数组输入输出流ByteArrayInputStream给定该输出流一个字节数组,该输入流就会从数组中读取所有字节ByteArrayOutputStream该输出流内部维护着一个字节数组,使该输出流写出的字节,都保存了自身维护的数组上了高效的深度复制使用ByteArrayOutputStream和ByteArrayInputStreamimport java.io.ByteArrayOutputStream;import java.io.IOException;import ja.

2020-09-12 18:47:01 402

原创 对象序列化与反序列化 ObjectInputStream&ObjectOutputStream 深层复制&浅表复制

将基本数据类型转化为字节的形式称为[序列化]从字节转换为其对应的基本类型数据称为[反序列化]将数据保存到磁盘中称为[持久化]对象序列化与反序列化ObjectInputStream:将字节读入并转换为其描述的对象ObjectOutputStream:将给定的对象转成字节并写出import java.io.Serializable;import java.util.Objects;/** * 可以被序列化的类 * 想要序列化,该类必须实现序列化接口 */public class.

2020-09-12 16:02:59 208

原创 设计模式--装饰模式(套娃模式)

装饰模式装饰模式的用途是不修改源程序的情况下,额外的为其添加一些逻辑.public interface Person { //需要重写的方法 public void say();}public class Teacher implements Person{ @Override public void say() { System.out.println("我是一名老师"); }}public class Decorator implements Person{.

2020-09-11 16:26:40 334

原创 关于System.in&System.out的一些操作

System.in 数据源是键盘的输入流import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class SystemInDemo { public static void main(String[] args) throws IOException{ InputStream in=System.

2020-09-11 15:58:29 164

原创 PrintWriter缓冲字符输出流

PrintWriter缓冲字符输出流构造方法众多PrintWriter(File file):向给定文件写数据printWriter(String fileName):给定一个文件路径,对文件进行写操作PrintWriter(OutputStream out):向给定的输出流写数据PrintWriter(OutputStream out,boolean autoFlush):向给定的输出流写数据,并可以指定是否自动行刷新若第二个参数为true:则println,printtf等方法输出数据.

2020-09-11 15:15:07 343 1

原创 使用字符读写文件的流 FileReader&FileWriter

使用字符读写文件的流FileReader:文件字符输入流 以字符为单位从文件中读数据FileWriter:文件字符输出流 以字符为单位向文件中写数据注意:这两个流仅用于读写文本文件文件字符输出流FileReader使用系统默认字符集,且不能改,局限性大以下代码如若在windows上运行并且char.txt是UTF-8编码,则会乱码import java.io.BufferedReader;import java.io.File;import java.io.FileRead.

2020-09-11 14:43:18 242

原创 缓冲字符输入输出流 BufferedReader&BufferedWriter

缓冲字符输入输出流特点:按行读写字符 见到\n结束一次读写BufferedReader:缓冲字符输入流BufferedWriter:缓冲字符输出流缓冲字符输入流按行读取字符串缓冲字符输入流是一个高级流,它只能处理另一个字符流String readLine() :返回读取的一行字符串,以\n为标识.读取到了n认为一行结束.返回的字符串中不包含\n!当返回值为null时,说明EOFimport java.io.BufferedReader;import java.i.

2020-09-11 14:18:25 103

原创 字符流 InputStreamReader&OutputStreamWriter

字符流读写单位一次一个字符Reader结尾:字符输入流Writer结尾:字符输出流InputStreamReader:字节输入流OutputStreamWriter:字节输出流OutputStreamWriter有一个构造方法可以传入编码集import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStre.

2020-09-11 13:17:28 74

原创 高级流 对基本数据的读写操作 DataInputStream&DataOutputStream

对基本数据的读写操作DataInputStreamDataOutputStream写基本类型数据void writeInt(int d): 一次写入4个字节,将int值转化为字节写出void writeLong(long l):一次写入8个字节,将long值转化为字节写出void write…读基本操作int readInt():一次性读取4个字节,将其转化为对应的int值double readDouble():一次性读取8个字节,将其转化为对应的double值高级流可以套.

2020-09-11 11:13:32 322

原创 缓存字节输入输出流 BufferedInputStream&BufferedOutputStream

缓存字节输入输出流BufferedInputStreamBufferedOutputStream缓冲输入输出流中自行维护了一块缓冲区.原理和我们写的定义一个字节数组是一样的例如byte[] b=new byte[1024*10];BIS读取数据时一次性尽可能多的读取字节,并缓存起来,这样我们通过该流程读取数据时,实际上就是从缓冲区中读取了,都是在内存中完成,所以读取效率高.当缓冲区内容都读取完毕后,该流会再次尽可能多的读取字节缓存起来,等待我们再次读取.读取方法:int read.

2020-09-10 21:11:12 134

原创 FileInputStream&FileOutputStream

java IOInputStream:输入流OutputStream:输出流java中的流分为 :低级流 :数据有明确来源和去向.高级流(过滤流,处理流):不能独立存在,必须依托于另一个流.使用高级流是为了简化读写操作.根据读写的数据单位通常分为字节流和字符流字节流:以字节为单位读写数据字符流:以字符为单位读写数据文件字节输入输出流:FileInputStream:文件输入流 (从文件中读取)FileOutPutStream:文件输出流(向文件中写)...

2020-09-10 19:45:57 84

原创 RandomAccessFile拷贝操作

RandomAccessFile拷贝对于读写而言 使用批量读写操作可以减少硬件操作,提高读写效率.所以若想提高读写效率,尽量采用批量读写.import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;/** * 使用RandomAccessFile进行拷贝工作 * @author Administrator * */public class CopyDemo { public s.

2020-09-10 13:02:23 187

原创 RandomAccessFile类&读写②

RandomAccessFile读写操作写:void write(int d):写一个字节,写的是读取int的低8位void write(byte[] b):写若干字节,写出的字节量就是给定的数组的长度.换句话说,就是将数组中所有字节都写出void write(byte[] b,int offset,int len):将数组中从iffset连续开始写入len个字节例如 raf.write(byte,5,5);void write(byte[] b,int offset,int le

2020-09-10 12:19:44 92

原创 RandomAccessFile类&读写

RandomAccessFile类用于读写文件内容的类.硬盘上的文件是byte by byte的void write(int d):写一个字节,写int值的低8位.写基本数据类型void writeInt(int d):写四个字节,将int值d写出.void writeLong(long l):写八个字节,写long值void writeDouble(double d):写一个double值void write…int read():读一个字节.返回一个int值,只有低8位有效读基本数据

2020-09-10 10:37:42 267

原创 针对File类的各种操作

File类用于描述操作系统中的一个文件或者目录.通过该类我们可以得知描述的文件或者目录的信息,例如,名字,大小,修改日期等等.但是不能对其内容进行访问.import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;/** * java访问文件或目录 * @author Administrator * */public class Fil

2020-09-09 16:16:40 190

原创 java的异常&捕获

Java的异常机制Java中的错误的顶级类:Throwable类Thorwable下派生了两个子类Error和ExceptionError:错误,通常是虚拟机级别的异常.程序(通过我们的代码)无法解决.Exception:异常,程序级别的异常我们可以通过代码的形式捕获异常,并进行相应的处理.Try关键字:Try{}:语句块Try语句块中包含的应该是可能引发异常的程序片段.Catch关键字:Catch(){}:捕获块Catch块是紧跟在try后面的,可以出现多个.每一个catch会列举

2020-09-09 12:04:41 94

原创 关于Map结构(key-value)

HashMap:使用散列算法实现的MapTreeMap:使用二叉树算法实现的MapV put(K key,V value):将给定的key与value存于map使用相同的key存放不同数据时为替换数据操作返回的就是被替换的数据.若当前key还不存在于map中返回nullV get(Object key):根据指定的key获取对应的value,若不存在则返回nullboolean containsKey(Object key):查看给定的key是否存在于Mapboolean containsValu

2020-09-08 15:25:47 1949

原创 数组 Deque(栈结构),先进后出

import java.util.Deque;import java.util.LinkedList;/** * 栈结构 * 存取数据遵循先进后出 * @author Administrator * */public class TestDeque { public static void main(String[] args) { Deque<String> deque=new LinkedList<String>(); deque.push("A")

2020-09-07 13:31:38 572

原创 Queue数组(可以取出直接首个元素)

import java.util.LinkedList;import java.util.Queue;public class TestQueue { public static void main(String[] args) { Queue<String> queque=new LinkedList<String>(); queque.offer("a"); queque.offer("b"); queque.offer("c"); System.o

2020-09-07 13:25:56 993

原创 关于ArrayList中subList方法的用途及其弊端(或可说为优势)

import java.util.ArrayList;import java.util.List;/** * subList方法,获取当前集合子集 * */public class SubList { public static void main(String[] args) { List<Integer> list=new ArrayList<Integer>(); for(int i=0;i<10;i++){ list.add(i);

2020-09-07 11:22:07 495

原创 增强for循环

该循环是专门为了遍历集合或者数组使用的,在功能上有别于传统循环for(ELEMENT_TYPE type : Array){…}for(元素类型 命名:指代){…}新循环内部是有迭代器实现的.java在编译的时候会将新循环转化为迭代器方式,所以要注意!对于使用新循环迭代集合或数组时不能通过集合或数组对元素进行增删操作import java.util.ArrayList;import java.util.List;public class NewFor { public static voi

2020-09-07 09:55:30 78

空空如也

空空如也

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

TA关注的人

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