
从头开始
文章平均质量分 70
从头开始整理java相关技术栈
旅行美蛙
24年毕业双非硕士、现在就职于市级国企金融it部门。如果觉得文章对您有帮助,请点赞或关注,谢谢。
展开
-
day34-暂时停止
考研计算机专硕295分了,双非,应该过了国家线。按往年来说,每年最低的270多还是有的,冲一下还是能上岸。准备复试,暂时会停止更新博客,准备复试。偶尔会更新。有书读啦。虽然比不上那些大佬。hhhh...原创 2021-02-28 13:49:56 · 87 阅读 · 0 评论 -
day33-jdbc事务
ACID原则原子性、一致性、隔离性、持久性隔离性的问题:脏读:一个事务读取了另一个没有提交的事务不可重复读:在同一个事务内,重新读取了表中的数据,表数据发生了改变幻读(虚读)具体的事务提交已经帮我们你写好了我们主要解决connection.setAutoCommit(false);//关闭自动提交//事务内容...connection.commit();//事务提交可以在catch中写回滚的语句,默认失败就会回滚这稍微额外写一点数据库的连接池数据的连接释放很浪费资源池化技.原创 2021-02-24 21:33:51 · 75 阅读 · 0 评论 -
day32-sql注入
sql注入就是说String username = "A";String password = "123456";String sql = "select* from user where username = "+username+"and password = "+password;但是如果把username改成String username = " ' 'or 1=1";并且自行改变and后的语句那么就能查出所有的用户信息了,由此可见,只需要在前端填写【‘or’ 1=1】就可查询到原创 2021-02-24 09:29:44 · 112 阅读 · 0 评论 -
day31-JDBC
JDBC数据库驱动,SUN公司为了简化开发人员的(对数据库的统一)操作,提供了一个java操纵数据库的规范,这些规范的具体实现由厂商实现,我们只需要掌控JDBC接口的操作即可java.sqljavax.sql下面需要一些包https://search.maven.org/去maven那里下载...原创 2021-02-23 11:39:17 · 177 阅读 · 1 评论 -
day-30 数据库规范
权限管理mysql.user表,本质,对这张表进行增删改查CREATE USER xxx IDENTIFIED BY '123456'SET PASSWORD = PASSWORD('123456')SET PASSWORD FOR kuangshen = PASSWORD('123456')RENAME USER xxx TO xxx2GRANT ALL PRIVILEGES ON *.* TO xxx2SHOW GRANTS FOR root@localhost-- root原创 2021-02-19 15:26:44 · 79 阅读 · 0 评论 -
day29-索引
MySQL索引背后的数据结构及算法原理http://blog.codinglabs.org/articles/theory-of-mysql-index.html什么是索引?MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。索引的分类在一个表中,主键索引只能一个,唯一索引可能有很多个主键索引(PRIMARY KEY)唯一的标识,主键不可重复,只能有一个列作为主键唯一索引(UNIQUE KEY原创 2021-02-19 09:28:18 · 65 阅读 · 0 评论 -
day28-事务
什么是事务简单来说,就是要么都成功,要么都失败将一组SQL放在一个批次中去执行事务原则:ACID原则,原子性,一致性,隔离性,持久性原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性(Consistency)事务前后数据的完整性必须保持一致。隔离性(Isolation)事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。持久性(Durability)原创 2021-02-15 23:37:28 · 94 阅读 · 0 评论 -
day27-mysql
模糊查询:比较运算符运算符语法描述IS NULLa is null如果操作符为null,结果为真IS NOT NULLa is not null如果操作符部位null,结果为真BETWEENa between b and c若a在b和c之间,则结果为真LIKEa like bSQL匹配,如果a匹配b则结果为真INa in(a1,a2,a3.,…)...原创 2021-02-15 16:49:01 · 229 阅读 · 3 评论 -
day26-mysql数据管理
外键https://www.liaoxuefeng.com/wiki/1177760294764384/1218728424164736简单来说,就是一个年级有x个班级表(一班二班),每个班级表有x个学生(1号学生,2号学生)。那么总的学生数就需要这里通过不同的class_id对应sutdent_id,通过class_id把多个学生表串联起来(也就是分班),这里的class_id就是外键。ALTER TABLE studentsADD CONSTRAINT fk_class_idFOREIGN K原创 2021-02-11 19:41:08 · 223 阅读 · 1 评论 -
day25-mysql续
数据类型的长度问题int类型int(xx)意思就是显示宽度xx位,并不是只能存xx位数字。和0填充有关。int(3)对于20,200来说。分别为020,200。若数字高于显示宽度,则按高位来。若数字不足,则补0。varchar和charvarchar(xx)在若值小于xx-1则只占实际大小,无冗余,例如varchar(10)的值为’ab’,则只占2位。若值大于10的长度,则只显示前10位的长度。实际中我们一般把varchar设置位最大255,反正也不会浪费额外空间。char(xx)则是固定原创 2021-02-07 18:35:38 · 108 阅读 · 0 评论 -
day24-基本sql
基本sql语句mysql -u root -p123456 --连接数据库update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; --修改用户密码flush privileges; --刷新权限sql语句必须以分号(;)结束show databases; --查看所有的数据库use xxx -- 切换到xxx数据库(不用分号是因为这不是s原创 2021-02-05 23:17:51 · 109 阅读 · 0 评论 -
day23-mysql基本
Mysql前段:页面,展示,数据后台:连接点,链接数据库JDBC,链接前端(控制,控制视图跳转,和给前端传递数据)数据库(存数据,txt,excel,word)什么是数据库DB,DataBase概念:数据仓库,软件,安装在操作系统(win,linux,mac…)SQL作用:存储数据,管理数据数据库分类关系型数据库:Excel等mysql、oracle、sql server、db2、sqllite非关系型数据库:{key:value}Redis,MongDBDBMS数据库管理系原创 2021-02-05 18:56:43 · 67 阅读 · 0 评论 -
day22-反射
反射java反射机制概述动态语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以更具某些条件改变自身结构Object-C、C#、JavaScript、PHP、Python等。静态语言与动态语言对应的,运行时候结构不变的语言就是静态语言。如Java、C、C++Java不是动态语言,但Java可以称之为"准动态语言".即Java有一定的动态性,我们可以利用反射机制获得类似动态语言的特性。Java原创 2021-02-04 16:00:37 · 118 阅读 · 0 评论 -
day21-注解
注解java.Annotation注解comment注释什么是注解:Annotation是从JDK5.0开始引入的新技术Annotation的作用:不是程序本身,可以对程序做出解释可以被其他程序(比如编译器等)读取Annotation格式:注解是以"@注释名"在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value=“unchecked”)Annotation在哪里使用可以附加在package,class,method,field等上面,相当原创 2021-01-27 23:54:29 · 127 阅读 · 0 评论 -
day20-线程池
使用线程池线程的创建和销毁是最消耗资源的背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。好处:提高响应速度(减少了创建新线程的时间)降低资源消耗(重复利用线程池中线程,不需要每次都创建)便于线程管理(…)corePoolSize:核心池的大小maxmumPoolSize:最大线程数keepAliveTime:线程没有任务时最多保持多长时间后会终原创 2021-01-23 20:17:14 · 82 阅读 · 0 评论 -
day19-线程协作
生产者消费者模式假设仓库只能存放意见产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费如果仓库没有产品,则生产者将产品放入仓库,否则停止生产并等待,知道仓库中的产品被消费者取走如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,知道仓库中再次放入产品为止。这是一个线程同步问题,生产者和消费者共享同一个资源,并且生产者和消费者之间相互依赖,互为条件对于生产者,没有生产产品之前,要通知消费者等待,而生产了产品之后,又需要马上通知消费者消费对于消费者,在消费之原创 2021-01-23 18:29:58 · 78 阅读 · 0 评论 -
day18-线程锁
守护(daemon)线程现场分为用户线程和守护线程虚拟机必须确保用户线程执行完毕虚拟机不用等待守护线程执行完毕守护线程,如,后台记录操作日志,监控内存,垃圾回收等待package State;public class ThreadDaemon { public static void main(String[] args) { A a = new A(); B b = new B(); Thread thread = new Th原创 2021-01-23 10:18:20 · 122 阅读 · 0 评论 -
day16.1-线程观察状态
线程状态观测Tread.State线程状态。线程可以处于下列状态之一:NEW至今尚未启动的线程处于这种状态。RUNNABLE正在 Java 虚拟机中执行的线程处于这种状态。BLOCKED受阻塞并等待某个监视器锁的线程处于这种状态。WAITING无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。TIMED_WAITING等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态。TERMINATED已退出的线程处于这种状态。在给定时间点上,一个线程只能处于一种状原创 2021-01-18 21:29:39 · 87 阅读 · 0 评论 -
day17-线程的优先级
线程的优先级java提供一个现场调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。线程的优先级用数字表示,范围从1~10Thread.NORM_PRIORITY==5Thread.MAX_PRIORITY==10Thread.MIN_PRIORITY==1获取优先级getPriority();设置优先级setPeiority(xxx);附源码 /** * Changes the priority of this thread.原创 2021-01-18 20:59:57 · 149 阅读 · 0 评论 -
day16-线程的五大状态
线程状态下面是五大线程状态下面是线程状态方法说明setPriority(int newPriority)改线程的优先级static void sleep(long millis)在指定的毫秒数内瓤当前正在执行的线程休眠void join()等待该线程终止static void yield()暂停当前正在执行的线程对象,并执行其他的线程void interrupt()中断线程,别用这个方式boolean isAlive()测试线程是否处于原创 2021-01-17 23:25:12 · 105 阅读 · 0 评论 -
day15-lambda表达式
Lamda表达式λ时希腊字母表中排序第十一位的字母,英文名称为Lambda作用如下避免匿名内部类太多实质属于函数式编程的概念。某些只用一次的方法,使用lambda就更简洁了。理解Functional Interface(函数式接口)是学习Java8 lambda表达式的关键所在函数式接口的定义:任何几口,如果只包含唯一一个抽象性方法,那么它就是一个函数式接口请看下面代码package lambda;public class TestLambda { //2.静态内原创 2021-01-16 21:31:42 · 118 阅读 · 0 评论 -
day14-并发问题
线程并发废话不多说,上例子//多个线程同时操作同一个对象//抢购小米11的例子public class TestThread4 implements Runnable{ //库存 private int phoneNums = 10; @Override public void run() { while (true){ if(phoneNums <=0)break; //模拟延时原创 2021-01-16 20:53:14 · 141 阅读 · 1 评论 -
day13-线程
线程普通任务和多线程任务的区别程序,进程线程的区别在操作系统中运行的程序就是进程,一个进程可以有多个线程。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。进程是执行程序的一次执行过程,他是一个动态的概念。是系统资源分配的单位通常一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义,线程是CPU调度和执行的单位。注意:很多多线程是模拟出来的,真正的多线程是指有多个CPU,即多核,如服务器。如果是模拟出来的多线程,即在一个CPU的情况下,在同原创 2021-01-15 12:09:48 · 104 阅读 · 0 评论 -
day12-常用类,集合,IO流
常用类第一 :基本数据类型之间的转换不是都可以自动转换的,而你要是强转的话可能会出现问题,比如: (int)“一二三”; 就会出错,为了方便转换,所以sum公司就搞了个包装类!第二 : 包装类和它们相对的基本数据类型,对比,包装类多了很多方法可以调用,简化了程序实现的过程!第三 : 反正用对了就是好用,但是要是本来一个基本数据类型就能搞定的,如Int a = 1;a ++ ;System.out.println(a);你非要用Integer 来创建一个对象,提高内存占用,我也是无所谓的,好吧原创 2021-01-14 11:25:37 · 342 阅读 · 0 评论 -
day11-异常
异常什么是异常(Exception)一出场指程序运行中出现的不期而至的各种状况,如文件找不到、网络连接失败、非法参数。异常发生在程序运行期间,它影响了正常的程序执行流程。一般有三种类型的异常检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法遇见的。比如要打开一个不存在的文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。错误Error:错误不是异常,而是若离程序员控原创 2021-01-13 22:04:08 · 108 阅读 · 0 评论 -
day10-java面向对象
面向对象面向过程面向过程就是一步一步来的,适合处理简单问题面向对象面向对象编程(Object Oriented Programming)OOP的本质就是:以类的方式组织代码,以对象的组织(封装)数据。对象的含义是指具体的某一个事物,即在现实生活中能够看得见摸得着的事物。在面向对象程序设计中,对象所指的是计算机系统中的某一个成分。在面向对象程序设计中,对象包含两个含义,其中一个是数据,另外一个是动作。对象则是数据和动作的结合体。对象不仅能够进行操作,同时还能够及时记录下操作结果。方法是指对象能够进原创 2021-01-13 20:35:13 · 268 阅读 · 0 评论 -
day9-java数组
数组数组概述数组的定义数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中 ,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们数组声明创建基本的声明方式dataType[] arrayRefVar;//首选dataType arrayRefVar[];//效果一样但不是首选,因为语义不是很好基本的创建方式dataType[] arrayRefVar = new dataType[arraySize];数组的元素是通过原创 2021-01-10 22:47:00 · 104 阅读 · 0 评论 -
day8-java方法
Java方法方法的定义java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法再程序中被创建,在其他地方被引用设计原则:方法的本意就是功能可,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子型,就是一个方法只完成一个功能,这样有利于我们后期的扩展也就是低耦合。Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段。方法包含一个方法头和一个方法体。下面是一个方法的所有部分:**修饰符:**修饰符,这原创 2021-01-08 22:46:55 · 116 阅读 · 0 评论 -
day7-Java流程控制
Java流程控制Scanner对象java.util.Scanner是java5的新特征,我们可以通过Scanner类来获取用户的输入基本语法Scanner scanner = new Scanner(System.in);if(scanner.hasNextInt()){ int a = scanner.nextInt();}scanner.close();//注意这里要关闭资源注意这里要关闭流资源next();一定要读取到有效字符后才可以结束输入对输入有效字符之前遇到的恐怖原创 2021-01-08 16:42:20 · 114 阅读 · 0 评论 -
day6-注释、标识符、关键字
java基础01注释、标识符、关键字注释注释的作用和注释的优点不做赘述,简单来说注释是一个好的习惯java中的注释有三种:单行注释多行注释文档注释comments下可以设置注释的样式我这里更喜欢默认的样式直接选中内容再按ctrl+/也可以达到用单行注释注释多行的效果文档注释通常它以 /** 开始,以 */结束。也就是/**+tab 即可自动生成(要在idea中自己配置)/*** @method checkUser(这里用一句话描述这个方法的作用)* @return原创 2021-01-07 22:06:58 · 238 阅读 · 0 评论 -
day5-HelloWorld
如何输出HelloWorld创建一个文件夹存放代码创建一个后缀为.java的文件记住勾选文件扩展名然后用Notepad++打开hello.java(notepad++这里不做介绍,请自行百度)敲出下列代码public class hello{ public static void main(String[] args){ System.out.println("hello world!"); }}保存用cmd转到存放文件的路径执行命令javac hello.java会在原创 2021-01-06 21:46:40 · 97 阅读 · 0 评论 -
day4-Java开发环境搭建
Java开发环境搭建如何卸载Java右键我的电脑选择属性找一找高级系统设置(不同系统版本的位置可能不一样有的在左有的在右)点击环境变量,找到系统变量下的JAVA_HOME(一般安装的时候命名为JAVA_HOME也可能是其他的)找到java_home的路径,删除对应路径文件夹清理环境变量在系统变量的Path中删掉JAVA_HOME最后一定要点击确定,点x就取消保存改变打开cmd用java -version来测试如何安装Java打开Oracle的网站https://www.orac原创 2021-01-06 15:54:06 · 138 阅读 · 0 评论 -
day3-Java的诞生
Java的诞生1972年C诞生贴近硬件,运行极快,效率极高指针和内存管理操作系统、编译器、数据库、网络系统等1982年C++诞生面向对象兼容c图形领域、游戏等1991年Python诞生1995年Java诞生语法像c没有指针没有内存管理可以执行,一次编译到处运行面向对象类型安全高质量的类库……图像界面的程序(Applet)1998年推出三个版本来推动java发展Java 2 标准版(j2se) 占领桌面Java 2 移动版(j2me) 占领手机Java原创 2021-01-06 12:27:26 · 77 阅读 · 0 评论 -
day2-什么是计算机?
什么是计算机?能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备由硬件和软件所组成广泛应用在科学计算、数据处理、自动控制、计算机辅助设计、人工智能、网络等领域计算机硬件一些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础cpu、memory(内存)、motherboard(主板)、IO设备冯.诺依曼计算机软件计算机软件可以使计算机按照事先预定好的顺序完成特定的功能计算机软件按照功能划分为系统软件与应用软件系统软件-dos系统,windows系统,linu原创 2021-01-03 21:18:09 · 189 阅读 · 0 评论 -
day1-markdown基础语法
一级标题二级标题三级标题字体加粗斜体粗体加斜体引用这里是被引用的内容图片![图片名字] ()超链接[超链接名字] ()List item列表2无序1无序2表格表格表格表格第二行第二行2第三行第三行2第四行第四行一行代码多行代码1多行代码2...原创 2020-12-30 22:38:35 · 103 阅读 · 0 评论