LeetCode206反转链表(Java实现)

LeetCode206:反转链表(Java实现)题目概述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL题目分析:题目很简单,我们需要分以下步骤假如 1->2 反转为 2->1 只需要将 2.next = 1即可了如果2.next = 1,则原来的2.next = 3,3节点就数据丢失了,所以在反转之前保存3的值反转完整后,我们下一个要由 2-&
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

MySql中对数据类型的总结

MySql数据类型关系大致分为三类:1.数值类型2.日期和时间类型3.字符串类型MySql数据类型关系图MySQL的数据类型包括数值类型、日期和时间 类型和字符串类型等,其关系图如下
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

MySql中建表时约束条件的总结

数据库建表时要考虑各种关系,必须要熟知以下约束关系目录约束类型1.主键约束——PRIMARY KEY2.唯一性约束 ——UNIQUE3.非空约束——NOT NULL4.默认值——DEFUALT5.外键约束——FOREIGN KEY6.检查性约束——CHECK
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

Springboot ActiveMQ 消息重发延迟时间 坑记

正确配置: @Bean public RedeliveryPolicy redeliveryPolicy(){ RedeliveryPolicy redeliveryPolicy= new RedeliveryPolicy(); //是否在每次尝试重新发送失败后,增长这个等待时间 redeliveryPolicy.setUseExponentialBackOff(true); //重发次数,默认为6次 ..
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

不告诉你我用了它配合Python简简单单开发OCR识别,带你识别手写体、印刷体、身份证等N种,附代码,免费下!

不告诉你我用了它配合Python简简单单开发OCR识别,带你识别手写体、印刷体、身份证等N种,附代码,免费下!
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

【Java并发编程】Java线程模型&线程调度原则

1 Java线程模型Java语言的线程,从规范的角度来说是不强制要求任何具体的实现方式的。采用1:1、N:1、M:N模型都可以。先放个传送门:RednaxelaFX:JVM中的线程模型是用户级的么?N : 1(JDK2前)Java线程在JDK1.2之前,是基于称为“绿色线程”(Green Threads)的用户线程实现的,而在JDK1.2中,线程模型替换为基于操作系统原生线程模型来实现。因此,在目前的JDK版本中,操作系统支持怎样的线程模型,在很大程度上决定了Java虚拟机的线程是怎样映射的,这点在不
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

【Java并发编程】两个问题:多线程一定好吗?& 线程阻塞时占用CPU吗?

1.多线程一定好吗1.1 适用场景阻塞等待时充分利用CPU当程序发生阻塞的操作时候,例如IO等待,CPU将就空闲下来了。而使用多线程,当一些线程发生阻塞的时候,另一些线程则仍能利用CPU,而不至于让CPU一直空闲。利用CPU的多核并行计算能力现在的CPU基本上都是多核的。使用多线程,可以利用多核同时执行多个线程,而不至于单线程时一个核心满载,而其他核心空闲。1.2 多线程弊端线程切换是有开销的,这会导致程序运行变慢。多线程程序必须非常小心地同步代码,否则会引起死锁。多线程程序极难调试
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

【Java并发编程】操作系统基础(一):进程与线程&线程模型

1.进程与线程1.1 进程资源分配单位。创建慢,上下文切换开销大进程状态:从上图可以看出,进程运行中只有三种状态:ready,running,waiting事实上还存在进程挂起状态,原因是为了满足CPU的某些需求,会将一些处于阻塞/就绪的进出交换出内存详细可以参考这篇博客。1.2 线程(轻量级进程)CPU调度单位。线程间共享进程资源。在Linux下其实本并没有线程,只是为了迎合开发者口味,搞了个轻量级进程出来就叫做了线程。轻量级进程和进程一样,都有自己独立的task_struct进
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

【Java并发编程】操作系统基础(二):内核态&用户态

Linux & Unix架构图:从图上我们可以看出来通过系统调用将Linux整个体系分为用户态和内核态(或者说内核空间和用户空间)。系统调用为了使应用程序访问到内核管理的资源例如CPU,内存,I/O。内核必须提供一组通用的访问接口,这些接口就叫系统调用。例如:用户态想要申请一块20K大小的动态内存,就需要brk系统调用,将数据段指针向下偏移,如果用户态多处申请20K动态内存,同时又释放呢?这个内存的管理就变得非常的复杂。Shell顾名思义,就是外壳的意思。就好像把内核包裹起来的外壳。它
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

【Java并发编程】操作系统基础(三):进程调度

1.调度时机在创建一个新进程之后,需要决定是运行父进程还是运行子进程。由于这两种进程都处于就绪状态,所以这是一种正常的调度决策,可以任意决定。在一个进程退出时必须做出调度决策。一个进程不再运行,所以必须从就绪进程集中选择另外某个进程。如果没有就绪的进程,通常会运行一个系统提供的空闲进程。当一个进程在阻塞I/O和信号量上或由于其他原因阻塞时,必须选择另一个进程运行。在一个I/O中断发生时,必须做出调度决策。如果中断来自I/O设备,而该设备现在完成了工作,某些阻塞的等待该I/O进程就成为可运行的就绪进
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

【Java并发编程】操作系统基础(四):上下文切换

我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时运行的错觉。而在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好CPU 寄存器和程序计数器什么是 CPU 上下文?CPU 寄存器和程序计数器就是 CPU 上下文,因为它们都是 CPU 在运行任何任务前,必须的依赖环境。CPU 寄存器是 CPU 内置的
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

看完这个spring事务,工作面试再不怕

前言:Spring 事务是我们在项目开发中经常使用的技术之一,事务太短那么会频繁创建数据库连接和释放连接导致数据库开销增大,事务太长又会导致数据库表死锁的风险,学习本文章大家将会学习到Spring 事务的各种使用技巧。另外本人整理收藏了20年多家公司面试知识点整理 ,以及各种Java核心知识点免费分享给大家,下方只是部分截图 想要资料的话也可以点击795983544领取 暗号CSDN。一. 关于事务控制事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

Java进阶:图书馆管理系统(非可视化)

任务简述还记得之前的图书管理吗?学习了集合以后,使用集合来进行图书信息的 存储吧。1.管理员登陆2.图书管理2.1 图书新增2.2 图书修改2.3 图书删除2.4 根据图书名称模糊查找图书2.5 查看所有图书 (三种排序)(新增)价格从高到低排序(新增)价格从低到高排序(新增)新旧排序(出版日期排序)题目分析1.图书信息:价格,图书编号(不可重复),出版日期(Date),图书名。2.数据结构:因为图书的信息有不同的数据类型(int,String,Date)并且还需要有排序,所以想
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

SpringBoot 配置阿里云连接池

SpringBoot 配置阿里云连接池引入jar包 <!--springboot 集成阿里云连接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.17</
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

详解项目中的几种常见应用设计模式Singleton、Factory、Strategy

一、前言前几天阅读一框架文档,里面有一段这样的描述 “从对象工厂中………” ,促使写下本文。尽管一些模式简单和简单,但是常用、有用。结合最近一个项目场景回顾一下里面应用到的一些模式<Singleton、Factory、Strategy>。Singleton:创建型模式,负责创建维护一个全局唯一实例 Factory:创建型模式,对象工厂负责根据标识创建或获取具体的实例对象 Strategy:行为型/运行时模式,策略负责根据标识控制应用运行时的行为二、场景上下文项目需求/场景:
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

Java中常见的解决并发问题的无锁技术,如何使用?

除了使用 synchronized、Lock 加锁之外,Java 中还有很多不需要加锁就可以解决并发问题的工具类一、原子工具类JDK 1.8 中,java.util.concurrent.atomic 包下类都是原子类,原子类都是基于 sun.misc.Unsafe 实现的。CPU 为了解决并发问题,提供了 CAS 指令,全称 Compare And Swap,即比较并交互 CAS 指令需要 3 个参数,变量、比较值、新值。当变量的当前值与比较值相等时,才把变量更新为新值 CAS 是一条 C
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

数据库的三大范式与五大约束——数据库的最详细讲解

一、数据库三大范式范式英文 Normal Form,缩写 NF,翻译为 规范化形式,简称 范式。第一范式1NF:数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性,而不是集合。反例:id user_id address 2019112178899 c6999001 XX省舟XX市XX区XX街道XX号 其中 address 可以再分为省、市、地区(县)、街道、详细地址,违反了第一范式。正例:id user_id
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

如何成功拿到30k,顺利唬住面试官?吃透这精选21道Java后端面试题,你也行

1. 如何用数组实现队列?用数组实现队列时要注意 溢出 现象,这时我们可以采用循环数组的方式来解决,即将数组收尾相接。使用front指针指向队列首位,tail指针指向队列末位。2. 内部类访问局部变量的时候,为什么变量必须加上final修饰?因为生命周期不同。局部变量在方法结束后就会被销毁,但内部类对象并不一定,这样就会导致内部类引用了一个不存在的变量。所以编译器会在内部类中生成一个局部变量的拷贝,这个拷贝的生命周期和内部类对象相同,就不会出现上述问题。但这样就导致了其中一个变量被修改,
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

系统设计面试之前需要知道的八件事——Java架构进阶之路

面试准备中最常见的问题是什么? 我可以立即告诉你:如何准备系统设计面试?很多人害怕系统设计面试,因为没有一定的模式用于准备,问题相当灵活和不可预测。 另外,系统设计的问题通常是开放式的,没有标准或正确的答案,这使得准备过程更加困难。我们已经花了整整一个月的时间来编写本指南,在系统设计面试之前告诉你一些你应该知道的事情,同时让你更加无忧无虑,因为系统设计面试并不像许多人想象的那样困难,一定的方式绝对可以帮助你适应它。一. 系统设计面试中评估什么?我们都知道,编程面试的重点是候选人的基本知识,所
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0

Java程序员金九银十涨薪必备——2020最全《BATJ Java必考面试题集》

一. 面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通
分类: 其他 发布时间: 09-14 23:18 阅读次数: 0