导航:首页 > 编程语言 > java每日一练

java每日一练

发布时间:2023-06-11 08:11:31

⑴ 推荐如何系统的学习java

我看最新的回答都是16年了,三年过去了,市场对java技术的需求发生了很大的变化,在三年前到企业去面试,面试官不会问道企业级的框架,ssm这些都不会问道,但是现在要会分布式架构,微服务架构,CC服务这些,企业面试官才会愿意跟你聊,跟你探讨,IT行业的技术发展特别快,需要我们不断的更新新的技术,java包含了6大阶段,273个技能点,现将技能点列举如下:

第一阶段:java基本功修炼

1.认识计算机硬件

2.计算机组成原理

3.计算机软件知识

4.计算机网络知识

5.常用网络应用操作

6.认识计算机病毒

7.逻辑训练

8.初识Java

9.变量和数据类型

10.选择结构

11.循环结构for

12.循环结构do-while

13.循环结构while

14.多重循环及程序调试

15.循环进阶

16.一维数组及经典应用

17.二维数组

18.认识类与对象

19.方法及方法重载

20.封装与继承

21.方法重写与多态

22.项目实战-汽车租赁系统

23.抽象类和接口

24.异常

25.项目实战-QuickHit

26.Java中的集合类型

27.List集合

28.Set集合

29.HashMap集合

30.Iterator

31.Collections算法类及常用方法

32.enum

33.包装类及装箱拆箱

34.String、StringBuffer类常用方法操作字符串

35.Date、Calendar

36.Math类常用方法

37.IO/NIO

38.字节输入流(InputStream、FileInputStream、BufferedInputStream)

39.字节输出流(OutputStream、FileOutputStream、BufferedOutputStream)

40.字符输入流(Reader、InputStreamReader、FileReader BufferedReader)

41.字节输出流(Writer、OutputStreamWriter、FileWriter、BufferedWriter)

42.文件复制

43.Serialize、Deserialize

44.职场晋升力:四象限时间管理与精力管理

45.多线程(Thread、Runnable)

46.ThreadLifeCycle

47.线程的调度

48.线程的同步和死锁

49.ThreadPool

50.职场晋升力:团队合作

51.Socket(TCP、UDP)

52.XML概念、优势、规范

53.XML中特殊字符的处理

54.使用DOM读取、添加、删除、解析 XML数据

第二阶段:javaweb开发

55.搭建和配置MySQL数据库

56.数据库增、删、查、改语句

57.事务

58.视图

59.数据库备份与恢复

60.数据库用户管理

61.数据库设计

62.项目实战-银行ATM存取款机系统

63.走进 HTML和CSS

64.列表表格及表单美化

65.CSS 高级操作

66.Bootstrap

67.CSS 组件

68.JavaScript面向对象

69.JavaScript判断、循环

70.JavaScript闭包

71.JavaScript语法

72.Bootstrap综合案例

73.HTML5、CSS3

74.jQuery基础

75.jQuery基本操作

76.jQuery事件与特效

77.jQuery Ajax

78.jQuery插件

79.搭建Web 环境初识JSP

80.JSP九大内置对象

81.JSP实现数据传递和保存

82.JDBC

83.单例模式、工厂模式

84.MVC、三层模式

85.Commons-fileupload、CKEditor

86.分页查询

87.EL 与 JSTL

88.Servlet与Filter

89.Listener与MVC

90.Ajax 与 jQuery

91.jQuery的Ajax交互扩展

92.项目实战—使用Ajax技术改进新闻发布系统

93.反射

94.Linux系统的安装

95.在Linux中管理目录和文件

96.在Linux中管理用户和权限

97.在Linux服务器环境下安装软件和部署项目

98.职场晋升力:职场沟通

第三阶段: 企业级框架开发

99. MyBatis 环境搭建

100. SQL 映射文件

101. 动态SQL

102. MyBatis 框架原理

103.SpringIOC

104.构造注入、依赖注入、注解

105. Spring 整合MyBatis(SqlSessionTemplate、MapperFactoryBean、事务

处理)

106. Spring 数据源(属性文件、JNDI)、Bean 作用域

107. Spring 框架的运行原理

108.SpringMVC 体系概念

109.SpringMVC 之数据绑定、数据效验、

110.SpringMVC 之视图及视图解析

111.SpringMVC 之文件上传、本地化解析

112.SpringMVC 之静态资源处理、请求拦截器、异常处理

113.Oracle数据库环境搭建、安装

114.Oracle数据库 SQL、分页、备份、还原

115.Hibernate 概念、依赖

116.HQL查询语言

117.Hibernate 中配置关联映射

118.HQL连接查询与 Hibernate注解

119.Struts2概念、依赖

120.Struts2配置

121.OGNL表达式

122.Struts2拦截器

123.SSH框架整合

124.使用Maven构建项目

125.使用Struts2实现Ajax

126.Jsoup网络爬虫

127.多线程网络爬虫

128.反爬及反反爬策略

129.通用爬虫设计

130.Echart图表分析

131.IKAnalyzer分词

132.企业框架项目实战-代理商管理系统

133.企业框架项目实战-SL 会员商城

134.企业框架项目实战-会员管理系统

135.企业框架项目实战-互联网招聘信息采集分析平台

第四阶段: 前后端分离开发

136.GitHub

137.Git基础(checkout、pull、commit、push、merge等)

138.Git进阶(多分支协作)

139.GitLab

140.IDEA的使用

141.Maven介绍(概念、仓库、构建、命令)

142.使用Maven构建WEB项目

143.使用Maven构建多模块项目

144.使用Maven搭建私服仓库

145.Scrum框架介绍(三个角色、三个工件、四个会议)

146.ScrumTeam组建团队

147.产品需求和用户故事

148.每日立会

149.使用敏捷-Scrum方式开发管理实战

150.前后端分离、分布式集群架构、垂直架构

151.SSM(SpringMVC+Spring+MyBatis)整合实战

152.Git、Maven私服Nexus

153.第三方接入技术(微信、阿里)

154.MySQL电商实战

155.Redis(缓存服务)

156.搜索引擎-Solr

157.集成APIDoc工具-Swagger

158.图片自动化处理:Tengine+LUA+GraphicsMagic

159.手机、邮箱注册

160.单点登录 Token

161.OAuth2.0认证

162.Jsoup网络爬虫(多线程爬虫/代理 IP爬虫)

163.ExecutorService线程池

164.IK中文分词

165.Postman

166.ReactJS

167.webpack

168.职场晋升力:简历撰写

169.程序猿面试宝典之项目面试

170.大型互联网旅游电商项目实战-爱旅行

第五阶段: 分布式微服架构开发

171.SpringBoot环境搭建

172.SpringBoot常用技能

173.SpringBoot整合Redis

174.SpringBoot整合Mybatis

175.微服务架构及架构设计

176.消息队列

ActiveMQRabbitMQ

177.分布式事务

178.分布式锁 Redis-setnx

179.Zookeeper注册中心

180.基于 ActiveMQ实现高并发

181.Docker环境搭建

182.Docker镜像加速

183.Docker容器管理

184.Docker镜像管理

185.Docker容器文件备份

186.Dockerfile

187.Docker私服仓库

188.真实互联网高并发电商项目实战-双十一抢购

189.可视化监控 Portainer

190.DockerCompose 容器编排

191.DockerCompose扩容、缩容

192.DockerSwarm集群编排

193.Jenkins安装、插件配置

194.Jenkins配置普通任务

195.Jenkins配置管道任务

196.Jenkins自动发布服务

197.Spring CloudEureka

198.Spring CloudFeign

199.Spring CloudRibbon

200.Spring CloudZuul

201.Spring CloudConfig

202.Spring CloudHystrix

203.Spring CloudSleuth

204.Spring BootAdmin

205.Eureka注册原理探秘

206.SpringCloud 大坑解读

207.Zipkin

208.Zipkin整合RabbitMQ

209.Zipkin整合MySQL

210.ELK日志收集

211.Kafka

212.Elasticsearch映射管理

213.Elasticsearch查询/复合查询

214.Elasticsearch集群/集群规划

215.Elasticsearch聚合

216.Elasticsearch集群监控

217.Elasticsearch插件

(Head/BigDesk)

218.Mycat读写分离

219.Mycat一主多从

220.Mycat多主多从

221.Mycat数据分片

222.Redis

223.Redis-Redlock

224.Elasticsearch环境搭建

225.Elasticsearch客户端

226.Elasticsearch索引管理

227.Elasticsearch文档管理

228.Mycat集群

229.Jmeter 并发测试

230.Jmeter 生成测试报告

231.微信登录

232.微信支付

233.支付宝支付

234.网络地图

235.Sonar本地检测

236.Sonar+Jenkins线上检测

237.CI/CD

238.SpringBoot改造爱旅行项目实战

239.大型互联网票务类电商项目实战-大觅网

240.ES6概念(les、const)

241.ES6对象和数组

242.ES6函数扩展

243.VUE环境搭建

244.VUE.JS指令

245.VUE 交互

246.VUE 实例生命周期

247.VUE 组件

248.VUE项目环境配置及单文件组件

249.VUE 路由

第六阶段:cc服务

250. Spring Cloud Gateway

251. Consul

252. Nacos

253. Eureka、Consu、lNacos、Zookeeper 对比分析

254. Prometheus + Grafana

255. ES 分布式存储原理

256. NoSQL 数据库解决方案(Redis、MongoDB)

257. OAuth2.0 认证( authorization code 模式)

258. OAuth2.0 认证( implicit 模式)

259. OAuth2.0 认证( resource owner password credentials 模式)

260.OAuth2.0认证( clientcredentials模式)

261.NAS/FastDFS分布式文件存储

262.Python基础

263.Python爬虫

264. 大数据及 Hadoop 概述

265. 分布式文件系统 HDFS

266. 分布式计算框架MapRece

267. 分布式列式数据库 HBase

268. Hadoop 综合应用

269. 面试大局观

270. 职业规划

271. 项目面试

272. 具体业务场景化解决方案

273. 更多技术专题持续增加中

⑵ 想要系统学习java到底要学习哪些知识

一、java基础

学习任何一门编程语言,首先要学习的是基础语法,开启Java学习的第一步,当然就是深入掌握计算机基础、编程基础语法,面向对象,集合、IO流、线程、并发、异常及网络编程,这些我们称之为JavaSE基础。当你掌握了这些内容之后,你就可以做出诸如:电脑上安装的迅雷下载软件、QQ聊天客户端、考勤管理系统等桌面端软件。

java学习路线大陆传送门

⑶ 每日一练进击大厂「DAY7」并发编程4

可以使用线程类中的join方法,在一个线程中启动另一个线程,另外一个线程执行完该线程继续执行。T3的run方法中执行t2.join(),T2的run方法中执行t1.join(),这样就会按照T1,T2,T3的顺序执行了。

AQS是java.util.concurrent包下的工具类,全称是AbstractQueuedSynchronizer抽象队列同步器,AQS是多线程同步器,Lock、CountDownLatch、Semaphore都用到了AQS,从本质上来说AQS提供了两种锁机制,分别是排它锁和共享锁。
排它锁:就是存在多线程竞争同一共享资源时,同一时刻只允许一个线程访问该共享资源,也就是多个线程中只能有一个线程获得锁资源,比如Lock中的ReentrantLock重入锁实现就是用到了AQS中的排它锁功能。
共享锁:也称为读锁,就是在同一时刻允许多个线程同时获得锁资源,比如CountDownLatch、Semaphore都是用到了AQS中共享锁功能。

CountDownLatch是基于执行时间的同步类,允许一个或多个线程等待其他线程完成操作,构造方法接收一个int参数作为计数器,如果要等待n个点就传入n,每次调用countDown方法时计数器减1,await方法阻塞当前线程直到计数器变为0,由于countDown方法可用在任何地方,所以n个点既可以是n个线程,也可以是一个线程里的n个执行步骤。

循环屏障是基于同步到达某个点的信号量触发机制,作 是让 组线程到达 个屏障时被阻塞,直到最后 个线程到达屏障才会解除。构造 法中的参数表示拦截线程数量,每个线程调 await 法告诉CyclicBarrier 已到达屏障,然后被阻塞。还 持在构造 法中传 个 Runnable 任务,当线程到达屏障时会优先执 该任务。适 于多线程计算数据,最后合并计算结果的应 场景。CountDownLacth 的计数器只能 次, CyclicBarrier 的计数器可使 reset 法重置,所以CyclicBarrier 能处理更为复杂的业务场景,例如计算错误时可 重置计数器重新计算。

信号量 来控制同时访问特定资源的线程数量,通过协调各个线程以保证合理使 公共资源。信号量可以 于流量控制,特别是公共资源有限的应 场景, 如数据库连接。Semaphore 的构造 法参数接收 个 int 值,表示可 的许可数量即最 并发数。使 acquire 法获得 个许可证,使 release 法归还许可,还可以 tryAcquire 尝试获得许可。

synchronized是重量级锁,拿到锁必须要阻塞,当量大的时候会一直阻塞唤醒,优化一下,不要让其阻塞,只是告诉有这么个标记,在synchronized的边界做循环,这就是自旋,如果做了多次循环发现还没有获得锁,再阻塞。

有一个线程来访问代码块,没有锁的竞争,偏向某个线程,把偏向锁的偏向标记存储为线程的线程id(主要是同一个线程反复抢占锁的场景),只有一个线程,如果线程抢占那么就会升级成轻量级锁,偏向锁默认是关闭的。

有线程竞争,自旋去判断这个对象的锁是否释放,自旋次数(默认根据上一次自旋次数和锁的释放时间来决定),会升级重量级锁

线程阻塞等待。

首先synchronized会尝试使用偏向锁的方式去竞争锁资源,如果能够竞争到偏向锁,表示加锁成功直接返回。如果竞争锁失败,说明当前锁已经偏向了其他线程,需要将锁升级到轻量级锁,在轻量级锁状态下,竞争锁的线程根据自适应自旋次数去抢占锁资源。如果在轻量级锁状态下还是没有竞争到锁,就只能升级到重量级锁,在重量级锁状态下,没有竞争到锁的线程就会被阻塞,线程的状态就是Blocked。

在运行的某个函数或者代码,因为抢占资源或者中断等原因导致函数或者代码的运行中断,等待中断程序执行结束后,重新进入这个函数或者代码中运行,并且运行结果不会受到影响,那么这个函数或者代码就是可重入的。
ReentrantLock类实现了Lock,它拥有与synchronized相同的并发性和内存语义。线程A在第一次抢占到锁,在还没有释放之前再次得到锁,这个时候就不需要重新抢占锁,而是增加重入次数,然后锁需要被释放两次才能获得真正的释放。
ReentrantLock是一种可重入的排它锁,主要用来解决多线程对共享资源竞争的问题
特性:
1)支持可重入。
2)支持公平和非公平。
3)提供了阻塞竞争锁和非阻塞竞争锁的两种方法,分别是lock()和tryLock()。
几个非常关键的技术:
锁的竞争,ReentrantLock通过互斥变量,使用CAS机制来实现的,没有竞争到锁的线程,使用了AbstractQueuedSynchronized这样一个队列同步器来存储,底层是通过双向链表来实现的,当锁被释放之后,会从AQS队列里的头部唤醒下一个等待锁的线程。
公平和非公平的特性,主要体现在竞争锁的时候,是否需要判断AQS队列存在等待中的线程。等待队列里的锁则是公平锁,如果都可以竞争锁,则是非公平锁。
锁的重入特性,在AQS里面有一个成员变量来保存当前获得锁的线程,当同一个线程下次再来竞争锁的时候,就不会去走锁竞争的逻辑,而是直接增加重入次数。

对于并发间操作产生的线程安全问题持乐观状态,乐观锁认为竞争不总是会发生,因此它不需要持有锁,将比较替换这两个动作作为一个原子操作尝试去修改内存中的变量,如果失败则表示发生冲突,那么就应该有相应的重试逻辑。

对于并发间操作产生的线程安全问题持悲观状态,悲观锁认为竞争总是会发生,因此每次对某资源进行操作时,都会持有一个独占的锁,就像synchronized,直接上锁操作资源。

择一良人,选一城市,三餐四季,春夏秋冬

阅读全文

与java每日一练相关的资料

热点内容
app充值请联系itunes 浏览:678
矢量app和cdr哪个好 浏览:85
系统文件坏了如何修复 浏览:20
键盘系统文件误删 浏览:738
白金英雄坛所有版本 浏览:842
ps文件转hsj 浏览:382
哪个网站电影 浏览:490
ps4游戏文件格式名称 浏览:290
caxa教程2007 浏览:832
新点是什么小说网站 浏览:753
魔兽世界冰封王座3版本转换器 浏览:418
苹果3dtouch软件 浏览:979
qq视频在哪个文件夹里面 浏览:740
请帖制作网站java源码 浏览:257
自己的网站怎么做兼职 浏览:608
医院基础数据是什么 浏览:744
为什么数据线没有typec接口 浏览:39
苹果手机文件管家 浏览:187
qq头像男生水里 浏览:633
联想电脑初始密码 浏览:517

友情链接