自定义博客皮肤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)
  • 收藏
  • 关注

原创 leetcode动态规划(持续更新)

5. 最长回文子串思路分析:先看一个成功的例子:abba,A[1]和A[4]匹配,A[2]和A[3]匹配,更符合实际来看,当我们不看A[4]时,abb,最长回文串为bb,当我们更新到abba时候,最长回文串更新到abba,所以整个的循环不变量是相应的最长回文串jiabbadp:初始化:000000000000...

2020-02-20 18:55:34 139

原创 day05(约束,标识列,TCL,视图)

约束-- 约束/*含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性分类:六大约束 NOT NULL:非空,用于保证该字段的值不能为空 比如姓名、学号等 DEFAULT:默认,用于保证该字段有默认值 比如性别 PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空 比如学号、员工编号等 UNIQUE:唯一,用于保证该...

2020-03-30 20:31:33 190

原创 day04(联合查询,DML,DDL)

联合查询union 联合 合并:将多条查询语句的结果合并成一个结果语法:查询语句1union查询语句2union...应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时特点:★1、要求多条查询语句的查询列数是一致的!2、要求多条查询语句的查询的每一列的类型和顺序最好一致3、union关键字默认去重,如果使用union all 可以包...

2020-03-30 12:05:29 255

原创 day03(连接查询,子查询,分页查询)

sql99标准-- sql99#一、内连接/*语法:SELECT 查询列表FROM 表名1 别名 【INNER】 JOIN 表名2 别名ON 连接条件WHERE 筛选条件GROUP BY 分组列表HAVING 分组后筛选ORDER BY 排序列表;SQL92和SQL99的区别: SQL99,使用JOIN关键字代替了之前的逗号,并且将连接条件和筛选条件进行...

2020-03-25 21:28:20 169

原创 day02(排序函数,常见函数,分组查询,连接查询)

排序函数语法:select 查询列表 from 表名 where 筛选条件 order by 排序列表 ;特点:①排序列表可以是 单个字段、多个字段、函数、表达式、别名、列的索引,以及以上的组合②升序,通过asc​ 降序,通过desc#1.查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序select last_name,department_id,salary from...

2020-03-24 16:09:32 158

原创 day01(基础查询,条件查询,模糊查询)

数据库概述什么是数据库数据库是持久化数据的一种介质,可以理解成用来存储和管理数据的仓库!持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。持久化的大多数时候是将内存中的数据存储在数据库中,当然也可以存储在磁盘文件、XML数据文件中。数据库的优点:可将数据持久化到硬盘可存储大量数据方便检索保证数据的一致性、完整性安全,可共享通过组合分析,可以产生新数...

2020-03-23 19:56:53 418

原创 day21

IO流File类的使用java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对 象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。File对象可以...

2020-03-17 10:40:00 99

原创 day20

泛型概念:所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如,继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实际的类型参数,也称为类型实参)。从JDK1.5以后,Java引入了“参数化类型(Parameterized type)”的概念,允许我们在创建集合时再指定集合元素的类型,正如:List &...

2020-03-13 10:36:51 131

原创 day19

Map接口Map与Collection并列存在。用于保存具有映射关系的数据:key-valueMap 中的 key 和 value 都可以是任何引用类型的数据Map 中的 key 用Set来存放,不允许重复,即同一个 Map 对象所对应的类,须重写hashCode()和equals()方法常用String类作为Map的“键“key 和 value 之间存在单向一对一关系,即通过指定的...

2020-03-12 17:07:54 100

原创 day18

Java集合框架概述集合、数组都是对多个数据进行存储操作的结构,简称Java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)数组在内存存储方面的特点:数组初始化以后,长度就确定了。数组声明的类型,就决定了进行元素初始化时的类型数组在存储数据方面的弊端:数组初始化以后,长度就不可变了,不便于扩展数组中提供的属性和方...

2020-03-11 15:22:06 130

原创 day17

枚举类的使用枚举类的属性枚举类对象的属性不应允许被改动,所以应该使用 private final 修饰枚举类的使用 private final 修饰的属性应该在构造器中为其赋值若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的传入参数枚举类的使用:枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类当需要定义一组常量时,强烈建议使用枚举类如果枚举类中只...

2020-03-10 11:26:38 165

原创 day16

字符串相关的类String代表字符串,Java程序中的所有字符串字面值(如“abc”)都作为此类的实例出现String是一个final类,代表不可变的字符序列字符串是常量,用引号引起来表示。他们的值在创建之后不能更改。String对象的字符内容是存储在一个字符数组value[]中,private final char value[];String:字符串,使用一对""引起来表示。S...

2020-03-06 12:02:31 154 1

原创 day15

线程的同步问题的提出卖票:现有三个窗口共同卖出100张票,模拟这个场景package java2;public class Window implements Runnable{ private int ticket = 100; @Override public void run() { while (true){ if ...

2020-03-05 18:16:37 84

原创 day14

多线程基本概念:程序、进程、线程程序:是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象进程(process):是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期。比如:运行中的QQ,运行中的MP3播放器线程(thread):进程可进一步细化为线程,是一个程序内部的一条执行路径。若一个进程同一时间并...

2020-03-05 16:36:04 93

原创 day13

异常在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。 (开发过程中的语法错误和逻辑错误不是异常)Java程序在执行过程中所发生的异常事件可分为两类:Error:J...

2020-03-02 15:05:06 130

原创 day12

抽象类与抽象方法类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。 abstract关键字的使用 * 1.abstract:抽象的 * 2.abstract可以用来修饰的结构:类、方法 * * 3. abstract修饰类:抽象类 * > 此类不能实例化 * > 抽象类中一定有构造器,便于子...

2020-03-01 20:32:22 376

原创 day11

static关键字有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份。简单使用:package cap14;public class StaticTest { public static void main(String[] args) { System.out.println(Circle.getTotal());//0 Circl...

2020-02-29 17:41:02 142

原创 day10

多态性理解多态性:可以理解为一个事物的多种形态。何为多态性:对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)多态的使用:虚拟方法调用,有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。总结:编译,看左边;运行,看右边。多态性的使用前提: ① 类的继承关系 ② 方法的重写对象的多态性,只适用于方法,不适用...

2020-02-26 12:30:54 99

原创 day09

继承上述图中,存在的类,我们在构造时,可能有一些共同的属性或者方法,比如,age,name,在每一个类中,我们都需要去定义,这样代码重复性就很高了,这时,我们引入了继承了概念。继承的好处① 减少了代码的冗余,提高了代码的复用性② 便于功能的扩展③ 为之后多态性的使用,提供了前提继承的格式class A extends B{}A:子类、派生类、subclassB:父类、超类、基类...

2020-02-26 11:40:39 148

原创 day08

封装当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值。这里,赋值操作要到属性的数据类型和存储范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。同时,我们需要避免用户再使用"对象.属性"的方式对属性进行赋值。则需要将属性声明为私有的(pri...

2020-02-24 20:31:55 83

原创 day07

再谈方法方法的重载在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表不同来区别。例如:System.out.println()方法就是典型的重载方法,其内部的声明形式如下:public void println(byte x)public voi...

2020-02-24 16:56:10 157

原创 day06

Java类及类的成员**面向过程(POP)**与 面向对象(OOP)二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。属性:对应类中的成员变量,Field = 属性 = 成员变量(到web学习的时候,属性和字段名会有一点区别,不过,只要你遵守良好的书写习...

2020-02-22 09:37:58 120

原创 day05

数组练习 获取arr数组中所有元素的和。 int arr[] = {3,4,5,6,723,23,1,3243,545}; int sum = 0; for(int i = 0;i < arr.length;i++) { sum += arr[i]; } System.out.println(sum);//4553 int sum1 = 0; int...

2020-02-21 20:46:26 85

原创 day04

数组是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。数组的常见概念:数组名下标元素数组的长度数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。数组的长度一旦确定,就不能修改。我们可以直接通过下标(或索...

2020-02-20 13:52:16 101

原创 day03

day03循环结构分类:for循环while循环do while循环组成:初始化部分循环条件部分循环体部分迭代部分for循环流程:初始化部分–>循环条件部分–>循环体部分–>迭代部分语法格式: for(初始化部分;循环条件部分;迭代部分){ 循环体部分; } //初始化部分-->循环条件部分-->循环体部分-->迭代部...

2020-02-19 11:23:32 187

原创 day02

运算符运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。算术运算符赋值运算符比较运算符(关系运算符)逻辑运算符位运算符三元运算符算数运算符 System.out.println(+168);//168 System.out.println(-168);//-168 System.out.println(3+2);//5 System.out.print...

2020-02-18 11:11:04 132

原创 day01

关于Java的一些术语术语缩写解释Java Development KitJDK编写Java程序的程序员使用的软件Java Runtime EnvironmentJRE运行Java程序的用户使用的软件Server JRE—在服务器上运行的Java程序的软件Standard EditionSE用于桌面或简单服务器应用的Java平台Ent...

2020-02-17 15:38:30 286 1

原创 Request

HTTP:* 概念:Hyper Text Transfer Protocol 超文本传输协议 * 传输协议:定义了,客户端和服务器端通信时,发送数据的格式 * 特点: 1. 基于TCP/IP的高级协议 2. 默认端口号:80 3. 基于请求/响应模型的:一次请求对应一次响应 4. 无状态的:每次请求之间相互独立,不能交互数据 * 历史版本: * 1.0:每一次请求响应...

2020-02-16 19:31:42 103

原创 10.CAS基本概念

CAS(Compare and Swap)原理:指令级别去保证这是一个原子操作,利用了现代处理器都支持的CAS的指令循环这个指令(自旋)CAS包含三个运算符:一个内存地址v一个期望值A一个新值B如果地址v对应的值为A,则将值换成B,如果不是A,则不进行任何操作,直到操作成功。很多人不理解上面的话,我来写一段代码演示一下CAS的操作private AtomicInteger at...

2020-02-02 21:34:00 200

原创 9.semaphore

semaphore信号量控制同时访问某个特定资源的线程数量,用在流量控制这像是一种锁的机制,acquire()像是获取锁的机制,这里我们叫他许可证,如果获取不到则阻塞,但是一般锁只允许一个线程同时访问,而semaphore可以同时多个(只要有许可证的存在),当业务执行完毕,你需要增加许可证的个数,当然了,你也可以不增加,但是这样的业务需求似乎不存在,release()可新增一个许可证。下面模...

2020-02-02 15:40:04 81

原创 8.CountDownLatch和CyclicBarrier

CountDownLatchCountDownLatch类似一个计数的工具,是等待其他线程完成工作以后,相当于加强版的join(),和join()又有所不同,join()是等待一个线程完成,而CountDownLatch只要你在进行countDown操作到0的时候,就会完成初始化,并不代表其他线程关闭了,而join()是等待其他线程执行完了才行,这一点有所不同import java.util....

2020-02-02 14:13:41 85

原创 7. Fork-Join分而治之

Fork-Join分而治之分而治之:大问题化为小问题,小问题合并为大问题的解。fork分解,join合取举个例子,吃饭时,一共有40只虾,本来一个人去剥,现在8个人平均去剥虾,一人5只,本来是40个的大任务,化成了8*5的小任务,这就是比较另类一点的分而治之,其次,因为剥虾有快慢之分,可能你剥的很快,你的弟弟还没剥完,这时候你会去帮他剥,但是最后成果还是你弟的,最后每个人完成的时候都是5只虾,...

2020-02-02 13:31:15 224

原创 6.wait()和notify()

线程间协作轮询:难以保证及时性,资源开销很大。等待和通知wait()notify()/notifyAll()标准范式等待方获取对象的锁循环里判断是否满足,不满足调用wait()通知方​ 获取对象的锁改变条件通知所有等在对象的线程代码演示:package tets;import java.util.Scanner;public class waitandn...

2020-02-02 12:11:44 91

原创 5.volatile和ThreadLocal

volatile关键字读操作时,获取到的都是最新的值代码演示public class testThread { private static class VolatileVar implements Runnable { private volatile int a = 0; @Override public void run()...

2020-02-01 20:38:01 120

原创 4.守护线程和synchronized

守护线程守护线程,当我们在新启动一个线程之前,如果将新建的线程对象setDaemon()设为true,那么该线程同时消亡。看下面的例子,在DemoThread01里面,我做了一个类似死循环的打印。在main线程里面,设置为守护线程,启动,结果并不是不停的打印“你好漂亮啊”,当main线程结束,t1也就结束了,值得注意的一点,在finally中的语块也没有执行,以前我们强调,finally中的一...

2020-02-01 19:56:57 108

原创 1.基础概念

cpu核心数与线程数的关系核心数:线程数 = 1:1超核心技术 =>1:2一个cpu只能处理一个线程cpu时间片轮转机制指定时间片该谁使用上下文切换–>状态切换–>阻塞和非阻塞之间的切换–>少切换进程和线程进程:程序运行资源分配的最小单位,进程内部有多个线程,会共享这个进程的资源线程:cpu调度的最小单位个人理解:cpu分配时间给了进程A,设时间片为B,...

2020-02-01 16:25:17 74

原创 2.创建线程的方式

Thread类本身是一个实现了Runnable接口的类大致上看下构造方法方式一:继承Thread类重写Run()方法方式二:实现Runable接口重写Run()方法方式三:实现Callable接口重写call()方法import java.lang.management.ManagementFactory;import java.lang.management.ThreadInfo...

2020-02-01 16:24:53 95

原创 3.线程之间的状态转换,interrupt中断标志位等

线程状态[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZUZihrEU-1580545388362)(C:\Users\xiao-liu\Desktop\图片\未命名文件 (2)].png)解读1.start() ≠ run()/** * 比较start()与run()的不同 */public class testThread { public...

2020-02-01 16:24:22 442

空空如也

空空如也

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

TA关注的人

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