java基础
hutubiancheng
这个作者很懒,什么都没留下…
展开
-
java面试题整理《redis篇》九
Redis实现分布式锁可以用来解决 Redis 的并发竞争 Key 问题实现方式:setnx、radisson、redlocksetnx:指定的 key 不存在时,才能操作成功,为 key 设置指定的值(已存在则不进行任何操作)设置锁:给所有服务节点设置相同的key,返回为0,则锁获取失败(防止锁被别人所释放可以设置一个线程的唯一标识)删除锁:判断线程唯一标志,再删除(可以设置一个合理的过期时间)问题:实现的Redis分布式锁,其实不具有可重入性存在任务超时问题,锁自动释放(key过期),导致并发问题Red原创 2022-06-27 17:16:46 · 304 阅读 · 0 评论 -
java面试题整理《redis篇》六
Redis事务控制Redis事务的本质是一组命令的集合,一次执行多个指令,事务中所有命令都被序列化,其他客户端提交的命令请求不会插入到事务执行命令序列中,简单来说:要不全执行,要不全不执行。Redis中提供了简单的事务功能,需要multi和exec两个命令实现。事务执行流程:开启事务(multi)命令入队(…)执行事务(exec)| 取消事务(discard)在Redis的事务中的命令出现不同错误时,处理机制也会有所差异:编译型异常(命令错误),事务中所有命令都不会执行,因为Redis没有隔离级别的概原创 2022-06-22 17:33:50 · 101 阅读 · 0 评论 -
java2022练手项目大全(源码+课件+数据库)
java2022练手项目大全(源码+课件+数据库)原创 2022-06-13 17:05:35 · 168 阅读 · 3 评论 -
java毕设项目-超市积分管理系统(附源码+课件+数据库)
超市会员积分管理系统主要用于实现了企业管理数据统计等。本系统结构如下:(1)网络会员管理中心界面:会员修改密码信息模块:实现会员密码功能;会员登陆模块:实现会员登陆功能;会员注册模块:实现会员注册功能;留言板模块:实现留言板留言功能(2)后台管理界面:系统用户管理模块:实现管理员的增加、查看功能;会员信息管理模块:实现会员信息的增加、修改、查看功能...原创 2022-06-07 16:41:41 · 173 阅读 · 1 评论 -
java面试题超详细讲解《spring篇》六
@PathVariable和@RequestParam的区别请求路径上有个id的变量值,可以通过@PathVariable来获取 @RequestMapping(value =“/page/{id}”, method = RequestMethod.GET)@RequestParam用来获得静态的URL请求入参 spring注解时action里用到。@Autowired和@Resource之间的区别@Autowired可用于:构造函数、成员变量、Setter方法,@Autowired默认是按照类型装原创 2022-06-06 16:47:32 · 81 阅读 · 0 评论 -
java面试题超详细整理《spring篇》六
@PathVariable和@RequestParam的区别请求路径上有个id的变量值,可以通过@PathVariable来获取 @RequestMapping(value =“/page/{id}”, method = RequestMethod.GET)@RequestParam用来获得静态的URL请求入参 spring注解时action里用到。@Autowired和@Resource之间的区别@Autowired可用于:构造函数、成员变量、Setter方法,@Autowired默认是按照类型装原创 2022-06-06 16:43:26 · 70 阅读 · 0 评论 -
java面试题超详细整理《spring篇》五
@Component 和 @Bean 的区别是什么?作用对象不同: @Component 注解作用于类,而@Bean注解作用于方法。@Component通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中(我们可以使用@ComponentScan 注解定义要扫描的路径从中找出标识了需要装配的类自动装配到 Spring 的 bean 容器中)。@Bean 注解通常是我们在标有该注解的方法中定义产生这个 bean,@Bean告诉了Spring这是某个类的示例,当我需要用它的时候还给我。@Bean原创 2022-06-02 16:58:15 · 68 阅读 · 0 评论 -
java面试题超详细整理《spring篇》四
@RequestMapping注解的属性RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。RequestMapping注解有六个属性:value: 指定请求的实际地址,指定的地址可以是URI Template 模式;method: 指定请求的method类型, GET、POST、PUT、DELETE等;consumes: 指定处理请求的提交内容类型(Content-Type),例如application/jso原创 2022-06-01 16:39:14 · 72 阅读 · 0 评论 -
java面试题超详细整理《spring篇》三
Spring 常用注解将一个类声明为Spring的 bean :@Controller:用来标注控制层组件,通过Controller注解标记的类就是一个SpringMVC对象,分发处理器会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping注解,可以把Request请求header部分的值绑定到方法的参数上。@RestController:相当于Controller注解与ResponseBody的组合效果@Component:通用的注解,可标注任意类为 Spring 组原创 2022-05-31 17:12:09 · 86 阅读 · 0 评论 -
java面试题超详细整理《spring篇》二
谈谈自己对于 Spring IoC 和 AOP 的理解控制反转:IOCIoC(Inverse of Control:控制反转)是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理,大大增加了项目的可维护性且降低了开发难度。 IoC 在其他语言中也有应用,并非 Spring 特有。IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是个Map(key,value),Map 中存放的是各种对象(在xml里配置的bean节点、@Controller原创 2022-05-30 16:40:15 · 78 阅读 · 0 评论 -
java面试题超详细整理《spring篇》一
什么是 Spring 框架?Spring 是一个开源的轻量级的Java开发框架,以 Ioc(Inverse Of control:反转控制)和AOP(Aspect Oriented Programming: 面向切面编程) 为内核,提供了展现层Spring MVC和持久层Spring JDBC以及业务层事务管理等众多企业级应用技术,其还整合众多开源的第三方框架,逐渐成为最受欢迎的Java EE企业应用框架。Spring框架的特征:轻量高效:Spring 是一个开源的轻量级的Java开发框架控制原创 2022-05-29 17:09:17 · 117 阅读 · 0 评论 -
java面试题超详细整理《MySQL篇》五
并发事务带来哪些问题?脏读(Dirty read):某个事务对数据进行修改时,另外一个事务读取了这个数据。因为这个数据是还没有提交的数据(可能会发生回滚),那么另外一个事务读到的这个数据是“脏数据”。不可重复读(Unrepeatable read):某个事务内多次读同一数据,数据不一致。可能在该事务多次读取数据期间,某一个事务修改了数据。(修改操作)幻读(Phantom read): 某个事务内多次读同一种数据,数据行数不一致。可能在该事务多次读取数据期间,某一个事务插入了数据,导致出现了原创 2022-05-27 16:42:12 · 61 阅读 · 0 评论 -
java面试题超详细整理《MySQL篇》四
mysql主从同步原理MySQL的主从复制中主要有三个线程: master (binlog dump thread),slave( I/O thread、SQL thread), Master-条线程和Save中的两条线程。主节点binlog:主从复制的基础是主库记录数据库的所有变更记录到binlog。 binlog是数据库服务器启动的那一刻起,保存所有修改数据库结构或内容的一个文件。主节点 log dump线程,当 binlog有变动时, log dump线程读取其内容并发送给从节点。从节点I/原创 2022-05-26 16:37:49 · 77 阅读 · 0 评论 -
java面试题超详细整理《MySQL》三
什么是MVCC多版本并发控制:读取数据时通过一种类似快照的方式将数据保存下来,这样读锁就和写锁不冲突了,不同的事务session会看到自己特定版本的数据,版本链MVCC只在 READ COMMITTED(读已提交)和 REPEATABLE READ(可重复读)两个隔离级别下工作。其他两个隔离级别够和MVCC不兼容,因为 READ UNCOMMITTED(读未提交)总是读取最新的数据行,而不是符合当前事务版本的数据行。而 SERIALIZABLE(串行化)则会对所有读取的行都加锁。聚簇索引记录中有两原创 2022-05-25 16:39:12 · 61 阅读 · 0 评论 -
java面试题超详细整理《MySQL篇》二
数据库三大范式第一范式: 属性不可再分第二范式: 在一范式的基础上,消除了部份依赖,属性完全依赖于主键第三范式: 在二范式的基础上,消除了传递依赖,属性不依赖于其它非主属性 属性直接依赖于主键数据库中的事务是什么?事务的特性?事务( transaction) 是一组有序的数据库操作。如果组中的所有操作都成功, 则认为事务成功,提交事务。 如果一个操作失败, 则事务将回滚, 该事务所有操作的影响都将取消。(事务是逻辑上的一组操作,要么都执行,要么都不执行)事务的特性:ACID原子性(Atom原创 2022-05-24 16:11:40 · 67 阅读 · 0 评论 -
java面试题超详细整理《多线程篇》五
ThreadLocal内存泄漏原因,如何避免?如果在线程池中使用 ThreadLocal会造成内存泄漏,因为当 ThreadLocal对象使用完之后,应该要把设置的key,value也就是Entry对象进行回收,但线程池中的线程不会回收,而线程对象是通过强引用指向 ThreadLocalMap, ThreadLocalMap也是通过强引用指向Entry对象,线程不被回收,Entry对象也就不会被回收,从而出现内存泄漏。解决办法:在使用了 ThreadLocal对象之后,手动调用ThreadLoca原创 2022-05-20 16:37:18 · 122 阅读 · 1 评论 -
java面试题超详细整理《多线程篇》四
什么是上下文切换?巧妙地利用了时间片轮转的方式, CPU 给每个任务都服务一定的时间,然后把当前任务的状态保存下来,在加载下一任务的状态后,继续服务下一任务,任务的状态保存及再加载, 这段过程就叫做上下文切换。时间片轮转的方式使多个任务在同一颗 CPU 上执行变成了可能。上下文:指某一时间点 CPU 寄存器和程序计数器的内容几种发生上下文切换的情况:主动让出 CPU,比如调用了 sleep(), wait() 等。时间片用完,因为操作系统要防止一个线程或者进程长时间占用CPU导致其原创 2022-05-19 16:21:03 · 126 阅读 · 0 评论 -
java面试题超详细整理(多线程篇)一
为什么要使用并发编程?提升多核CPU的利用率: 在一个多核CPU的主机上,我们可以创建多个线程,将多个线程分配给不同的CPU去执行,每个CPU执行一个线程,这样就提高了CPU的使用效率。方便进行业务拆分: 面对复杂业务模型,可以对业务模块进行拆分,从而提升响应速度。而进行拆分时可以使用多线程技术来完成。优点:提高了程序的执行效率,一定情况下可以提高程序运行速度。缺点:可能出现内存泄漏、上下文切换、线程安全、死锁等问题。并发编程三要素是什么?原子性:一个操作是不可分割的,要么全部执原创 2022-05-16 17:32:32 · 130 阅读 · 1 评论 -
java温习之java中的重点和难点
第一部分:进制的相互转换1.十进制和二进制的相互转换十进制转二进制:int num = 102;StringBuffer sb = new StringBuffer();while(num >= 1) { sb.append(num%2); num = (int) (num / 2); }System.out.println(sb.reverse());二进制转十进制:String binaryStr = "1100110";int num原创 2022-05-15 17:35:45 · 557 阅读 · 1 评论 -
java入门必备基础知识(超超超详细讲解)
一、JAVA运行机制Java程序的运行必须经过编写、编译、运行三个步骤。编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。编译是指使用Java编译器(JDK中)对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,这不像C语言那样最终生成可执行文件。运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是Java原创 2022-05-13 17:19:43 · 16154 阅读 · 1 评论 -
java分享丨快速入门java,必看的教程java300集
如何快速入门java?1. 认清学习编程的好处学习编程本来是件很苦逼的事,但很现实的问题是,这比传统行业能挣得多啊,而且比一些行业不是多一点半点,那是直接步入主流社会,搞上编程,你突然发现生活有了追求,即使苦点累点。其实更重要一点,钱都买不来的是,你从此与专业计算机科技有了交集,计算机的专业知识你更懂了,比如计算机为什么只懂0和1,玩吃鸡时你看到的只是游戏中的用户界面,其实游戏的大脑程序躲在后面不断的刺激你,而你根本不知道,有了专业知识,你懂了华为手机虽然有缺点,但你依然喜欢他的好,你懂了苹果手机为原创 2022-05-12 17:10:50 · 244 阅读 · 0 评论 -
java入门必备知识点
字符串1.字符串:就是一个或多个字符组成2.声明字符串:1、直接声明,比如:String name = “张三”;2、使用对象的方式,new一个String类的对象,比如:String name = new String(“张三”);3.栈:用来存储较小的数据,离访问位置比较近,比如:int,double,short。。堆:用来存储较大的数据,离访问位置比较远,比如:String,数组,自己定义的类型4.引用数据类型:通过在栈中的地址去引用存储在堆中数据的数据类型只要使用原创 2022-05-10 17:07:31 · 156 阅读 · 0 评论 -
Java编程学习入门、入门必备知识点
类和对象1.OOObject Oriented表示面向对象的意思2.世界由什么组成水,陆地,草,人,动物,植物,楼房,汽车等等由所有一切真实存在的东西组成,这些真实存在的东西就叫作对象属性:就是对象所具有特征方法:就是对象所执行的行为或操作对象:用来描述真实存在事物的一个实体,由一组属性和方法组成封装:对象的属性和方法通常封装在一起,共同体现事物的特性,两者不可分割类:将对象共同的属性和方法抽取出来就是类类是模子,定义对象所具有的属性和方法3.类和对象的关系原创 2022-05-09 15:17:09 · 197 阅读 · 0 评论 -
Java编程学习入门、Java语言学习、Java入门必看
数组1.数组的概念在内存中开辟的一串连续的空间,用来存储相同数据类型的,比如:鞋柜只会放鞋子,衣柜只会用来放衣服2.数组的基本要素1、标识符(数组名):数组的名称,用来区分不同的数组2、数组元素:存放在数组空间中的数据3、数组下标:对数组中的空间进行编号,区分每个空间,数组下标从0开始,可以通过数组下标找到对应的空间4、元素类型:数组的数据类型3.数组的定义和使用1、声明数组:告诉计算机数组是什么类型语法:数据类型[] 数组名 或者 数据类型 数组名[]比原创 2022-05-08 13:59:06 · 78 阅读 · 0 评论 -
Java编程学习入门、Java语言学习、Java入门必看
循环结构1.循环结构:打印50份试卷,是从第1份开始打印,打印到第50份结束,重复打印试卷的过程绕操场跑10圈,从第1圈开始,到第10圈结束,重复跑步的过程做100道编程题,从第1题开始,到第100道结束,重复做题的过程2.循环的概念:重复完成某一件事情或者某一个操作,有一个开始位置和结束位置就叫做循环3.循环的特点:1、循环条件:也就是满足某个条件下才做重复的操作2、循环操作:也就是重复所做的事情或者操作4.while循环的语法:while(循环条件){满足条件的时候所做的循环操作原创 2022-05-06 16:29:29 · 96 阅读 · 0 评论