java后端学习重点:
1.java语言特性: 基础知识,集合,多线程,并发,JVM,NIO,网络编程,设计模式。 (★★★★★)
jdk源码中有大量的数据结构与java语言细节。jdk源码着重看concurrent、collection、sort、nio、util。
2.计算机基础知识: 数据库(索引和锁等基础及sql优化)。网络(http协议、tcp协议)。数据结构。算法。操作系统。计算机组成原理。 (★★★★★)
计算机基础知识和java语言细节。是最最重要的。需要重点学习。五年甚至十年后都有用。
框架每隔几年就会更新换代,但是基础知识是永远有用的。
80%的时间用来学习基础知识,20%的时间学习框架。
3.Web框架。分布式架构。
必备:Spring,Mybatis,SpringMVC,Mybatis-plus,SpringBoot
常用:分布式架构。分布式理论。集群。分布式缓存Redis。SOA架构Dubbo。远程调用RPC。分布式服务协调Zookeeper。消息队列KafKa 。微服务架构SpringCloud。分布式事务。
可选:搜索引擎ElasticSearch。容器Docker。分布式数据库分库分表Mycat 。分布式Session。分布式存储。分布式锁。
边实战边理解原理。最重要的是理解原理。用过很多框架,但是不懂原理,那也是无用的。(★★★★)
比如学习Redis,就得知道Redis常用数据结构、Redis事务、备份方式、回收策略、主从同步、哨兵模式,Redis集群。
阅读spring、springMvc等框架源码、或者是其他第三方库源码。Spring源码主要是体会设计模式的运用。
4.深入理解设计模式。最重要的是理解编程思想。 (★★★)
理解Tomcat,Nginx等服务器原理,mysql事务隔离与锁机制,sql优化,数据库引擎InnoDB原理 , nosql型数据库原理等
5.其他进阶知识:linux、mongodb、nginx、netty、tomcat、sql优化 (★★★★)
6.前端基础JavaScript、html、Css、Ajax、JQuery。 (★★★)
中小型公司经常要求后端开发也要会一点前端。简单够用就行。非重点。
java后端架构师技术图谱: https://github.com/xingshaocheng/architect-awesome
书籍:
java语言:《java编程思想》、《Effective Java》、《码出高效》、《Java性能优化权威指南》、《java并发编程实战》、《深入理解Java虚拟机》
SSM:《Java EE互联网轻量级框架整合开发 SSM框架》、《精通Spring企业应用开发实战》、
设计模式:《Head First 设计模式》、《大话设计模式》
分布式理论:《大型分布式网站架构设计与实践 》、《大型网站技术架构:核心原理与案例分析》、
《大型网站系统与Java中间件实践》
分布式中间件:《从Paxos到Zookeeper 分布式一致性原理与实践》、《Redis设计与实现》、《Redis开发与运维》、《kafka实战》、《kafka权威指南》
微服务:《SpringCloud微服务实战》
网络 :《图解Http》、《HTTP权威指南》、《tcp/ip详解 卷一、二、三》、《网络是怎样连接的》、《图解Tcp/ip》
数据库:《mysql必知必会》、《MySQL技术内幕 InnoDB存储引擎》、《高性能MySQL》
操作系统:《linux鸟哥的私房菜》
计算机组成原理:《深入理解计算机系统》、
代码规范:《阿里巴巴java开发手册》、《代码整洁之道》、《重构 改善既有代码的设计 》
其他:《程序员修炼之道》、《码农翻身》、《代码大全》、《人月神话》、《黑客与画家》
学习方法:
0.每周完成一个 ARTS:每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称 ARTS)坚持至少一年。
1.项目经验!!以战养战!动手做项目!
项目驱动型学习。只有亲自动手做,才能掌握技术。没有动手做,就算看十遍也不一定会理解的。
将项目放到GitHub,坚持commit。。
2.经常进行CodeReview。通过审核,重构代码,在反馈中不断进步。
3.多读源码 ,理解技术原理。要带着疑问去读源码,不要为了读源码而读源码。
问题驱动型学习。比如当工作中或者面试时遇到问题都可以记录下来,然后带着这些问题去学习。
jdk源码中有大量的数据结构与java语言细节。jdk源码着重看concurrent、collection、sort、nio、util。
阅读spring、springMvc等框架源码、或者是其他第三方库源码。Spring源码主要是体会设计模式的运用。
也可以去GitHub下载一些优秀的项目,阅读源码。
4.多看好书,书籍的知识是系统知识,而不是碎片化知识。
边看书,边实践,再查阅相关博客,总结提高。看视频也可以。
5.csdn回答问题,收集疑问,整理并系统化知识.
6.花一个月时间解答面试题。多看牛客网。
在leetcode、codewars刷题。刷题可以分Topic刷,比如链表、栈、队列、树、排序等。刷题通过笔试才有机会进入比较好的公司。。
7.多看官方文档,官方文档的内容是最准确的。最好将官网的代码敲一遍。
网络上其他的资料大多是二手货,而且还不一定是正确的。
8.每隔几个月,查看招聘网站的 java开发/架构师 的工作要求,技术栈。
面向就业学习。如果学习的内容不是企业所需要的,那找工作会比较麻烦。
9.阅读ImportNew、InfoQ等公众号,拓展视野。
10.分清哪些是最主要的技术。抓重点。下班后分配更多的时间学习。有些技术是很容易过时的。
11.使用网站或其他产品的时候,多思考实现和原理。模仿其他知名网站的。自己写一下。
12.提高调试技巧。
13.刻意学习。
java学习路线 : https://www.cnblogs.com/expiator/p/9266957.html
=======================================================================
碎片时间:
下班前或者睡觉前的 20分钟以内的时间。
只有系统时间才适合提高技能。碎片时间只适合了解、整理碎片知识。。
可以规划学习进度,阅读微信公众号,整理有道笔记,浏览掘金文章,阅读"待阅"文章。
阅读《程序员修炼之道》、《码农翻身》、《黑客与画家》等书籍。
======================================================================
如何亲自动手写项目?
有需求才有想法思路然后在写项目,空写肯定不行,去网上找个需求写就是了.
要么你自己去网上找别人的毕业设计或者是课程设计慢慢练手。或者是你自己根据你自己所想的构造一个需求。然后去做就是了。
你已经看了项目,那你就知道项目的结构是啥样的。遇到问题去查去问就是了。没那么难。重要的是你自己要走出那一步。
写不出前端代码,也可以去网上找模板。先模仿后创新。
====================================================================
大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,建议是分开。
对于后端java工程师:
把精力放在java基础,设计模式,jvm原理,spring+springmvc原理及源码,linux,mysql事务隔离与锁机制,mongodb,http/tcp,多线程,分布式架构(dubbo,dubbox,spring cloud),缓存,消息队列,弹性计算架构,微服务架构(springboot+zookeeper+docker+jenkins),java性能优化,以及相关的项目管理等等。
后端追求的是:三高(高并发,高可用,高性能),安全,存储,业务等等。
对于前端工程师:
把精力放在html5,css3,jquery,angularjs,bootstrap,reactjs,vuejs,webpack,less/sass,gulp,nodejs,Google V8引擎,javascript多线程,模块化,面向切面编程,设计模式,浏览器兼容性,性能优化等等。
前端追求的是:页面表现,速度流畅,兼容性,用户体验等等。
术业有专攻,这样你的核心竞争力才会越来越高,正所谓你往生活中投入什么,生活就会反馈给你什么。并且两端的发展都越来越高深,你想什么都会,那你毕竟什么都不精。
通过将team分成前后端team,让两边的工程师更加专注各自的领域,独立治理,然后构建出一个全栈式的精益求精的team。
========================================================================
面向就业编程
51job、智联,了解企业最需要的技术,每隔一段时间,重点归纳:
201805重要技术栈如下:
1.多线程,IO,NIO,集合,网络编程。并发编程
2.Spring,Redis,Dubbo,消息队列,zookeeper,SpringBoot,SpringCloud。Soa架构,微服务架构。分布式架构。
========================================================================
(已淡化安卓方面的学习,着重web开发)
安卓学习计划:
0.多写几个项目,模仿知乎app,支付宝等,
1.开源库:Gson、volley、okhttp、Fresco、Glide、retrofit 、dagger2 、rxjava 、eventbus
2.重看《Android编程权威经典》,学习《艺术探索》。多看郭霖、hongyang、任宇刚大神的博客
3.拆*,研究开源库的源码,或自己造个*
安卓常用的技术:
网络编程,json和xml解析,绘图原理,动画,事件机制,自定义View,数据存储,开源框架,
四大组件原理,UI控件(RecycleView,TabLayout等),Material Designs
=========================================================================
阶段性总结:
201805 :
反思一下自己的动手能力。老大交给我一个很简单的任务。。我做了两个月,结果让她很不满意。唉。。我还是太菜了。
201810:
搭建zk集群,redis集群,kafka集群,dubbo等,各种java中间件的demo。边实战边理解原理。(基础部分完成)
白天《redis实现》,晚上《从Paxos到Zookeeper 分布式一致性原理与实践》。(已完成)
201812:
工作最重要的还是"出活"。多做项目。多实践。
目前在学习分布式和微服务。。纯洁的微笑、程序员DD的博客。
书籍 《大型分布式网站架构设计与实践 》、《SpringCloud微服务实战》、《码农翻身》
实战方面:SpringBoot、SpringCloud项目。博客,论坛,购物网站等等。
============================================================================
假如生活欺骗了你,
不要悲伤,不要心急!
忧郁的日子里须要镇静:
相信吧,快乐的日子将会来临!
心儿永远向往着未来;
现在却常是忧郁。
一切都是瞬息,一切都将会过去;
而那过去了的,就会成为亲切的怀恋。
===================================================================
2月28号--3月10号
主要温习一下工作中常用的基础知识。
1.Mybatis多表查询、手写比较复杂的Sql、Mybatis-plus
2.java8的Lambda表达式以及时间日期api,还有guaua包、HttpClient。
3.实战类:《阿里巴巴java开发手册》、《Maven实战》
理论类:《Redis设计与实现》、《高性能Mysql》
4.坚持刷题。
5.SpringCloud服务熔断和降级。
6.linux安装mysql、tomcat、nginx。
12月10---2月9号
1.牛客网做笔试题,看面试题。java基础,集合,多线程,并发,jvm,spring,网络,数据库,分布式。。一个接一个模块看。
2、LeetCode每天刷题。《剑指offer》。手写链表、树、排序、查找等算法。
3.阅读jdk集合(HashMap、ArrayList、TreeSet)、并发(线程池、ConcurrentHashMap、ExecutorService)等源码。
4.《码出高效》、《java并发编程实战》、《深入理解java虚拟机》、《大型分布式网站架构设计与实践 》、《阿里巴巴java开发手册》
5.Git、Dubbo、Mybatis-plus
2月12号
1.线程池源码。线程池的实现原理。
1月22号
1.kafka的理解。
2.如果有看过Spring的相关源码,能更好地理解IOC,AOP,还有其他很多设计模式。
3.Spring的底层原理,还有Mysql的底层原理,这两部分有所欠缺。
1月18号
1.温习下sql优化。锁。索引。
1月15号
1.准备看《mysql必知必会》、《MySQL技术内幕 InnoDB存储引擎》
1月3号
1.Spring的上下文机制、循环依赖等面试题。
2.在白纸上手写设计模式。
1月2号
1.linux查看端口占用,linux查看日志并搜索。
12月7号
1.牛客网做笔试题。jvm等方面。
2.ConcurrentHashMap源码。
12月5号
1.ArrayList源码、LinkedList源码。
12月2号
1.HashMap等集合的源码
2.LeetCode刷题。
11月29号
1.postman传递json给后台。
11月28号
1.后台解析formData类型。。
2.@RequestBody的作用。用于解析application/json数据。。
11月27号
1.在springBoot中使用validator校验数据。。
@Validated:可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)上
@Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上
2.jquery使用formData发送对象给后台 。
3.Leetcode刷题 。。
11月26号
1.整理消息队列的资料。
11月24号
1.kafka生产者成功发布消息,消费者监听订阅,成功接收。
11月21号
1.maven使用assemly打包jar包。
2.lettCode刷题。。复习jdk集合的数据结构
11月19号
1.使用jedis操作集群。
2.linux安装kafka
11月18号
1.leetCode刷题。
11月15号
1.redis集群,删除节点后重新将节点加入集群,出现错误。
11月14号
1.redis集群的哈希槽、分片。
2.准备搭建zk集群。过几天再整合dubbo和zk。。
11月13号
1.成功搭建redis集群。
2.为什么我在redis集群的一个节点写入数据,它把我的数据存放到另一个节点。。查询的时候也是转到另一个节点。好奇怪。。
查资料才知道原来这个是分片。
11月12号
1.Jedis连接池JedisPoolConfig的配置不太熟悉。最大空闲数、最大连接数。一直报错。
2.linux配置静态ip。
3.接下来准备搞下redis集群、zookeeper集群。。完成后再去弄kafka集群。
11月9号
1.zk序列化,然后获取节点数据。
2.zk节点数据乱码。。需要自定义序列化类。
11月8号
1.zookeeper相关jar包zkClient的api例子。
11月6号
1.redis在linux中的配置、部署及启动。
2.修复VmwareTools。需要用rpm处理依赖包
3.idea打包jar包放进linux,运行出错。pom.xml中的main()方法要写完整路径。
11月1号
1.没有集中精神,效率好低。。折腾了一会,装几台linux。
10月30号:
1.redis主从同步,哨兵模式。
2.zookeeper通过java api查询节点数据。
10月29号
1.redis备份和内存回收策略。
10月26号
1. zookeeper,redis的java相关例子。
2.学习SpringCloudStream,消息驱动微服务。。由于对MQ还不够熟悉,看了有点蒙。
10月25号
1.准备深入学习zookeeper,redis。
2.加深一下springCloud的理解。
3.eureka-server高可用注册中心集群,存在多个注册中心,彼此互相注册,某个注册中心失效时,还有其他注册中心可用。
10月24号
1.安装家里电脑的虚拟机,vm tools,还有jdk。。准备下一步装zk,kafka。
10月22号
1.了解一下Http的无状态机制。状态信息存储在cookie和session。
2.做一下验证码功能、再做个导入导出excel和打印功能。
10月17号
1.网络编程。TCP,UDP协议的比较。。TCP三次握手。
10月16号
1.NIO的Buffer,Channel,Selector的相关api及理解。
10月12号
1.简单了解下NIO,BIO,AIO。
10月10号
1.SpringActutor进行监控。查看状态信息,还可以查看线程状态,jvm堆状态。
10月9号
1.接下来打算了解下NIO。
2.给家里的台式电脑装Linux环境。
3.jdk动态代理,代理对象调用方法时,为什么会触发InvocationHandler的invoke()方法?
遇到api细节,有不懂的地方就查资料,看源码。
10月1号
1.写下session和cookie的代码块。
2.继续研究SpringBoot的一系列博客进行实践。
SpringBoot书箱《Spring Boot实战》、《JavaEE开发的颠覆者:Spring Boot实战》、《SpringBoot揭秘:快速构建微服务体系》
9月28号
1.了解一下zookeeper的原理。
2.重温一下jdk、cgLib动态代理。Method的invoke() 的理解。
9月27号
1.保存在内存和保存在磁盘有什么区别?
2.kafka的组件。。
9月26号
1.kafka配置成功。准备整合一下SpringBoot和kafka。
9月25号
1.简单了解一下kafka和rabbitMQ。。打算学一下kafka。
2.kafka依赖于zookeeper。。成功配置zk。
9月24号
1.配置eureka-server集群。
2.maven命令。package是把jar打到本项目的target下,而install时把target下的jar安装到本地仓库,供其他项目使用.
3.在Idea中,使用maven进行clean时,一直出错。
Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.6.1:clean (default-clean)
9月21号
1.SpringCloud断路器Hystrix、服务网关Zuul。
9月20号
1.jvm的Class类文件结构。。全是概念。看了好迷糊。
9月18号
1.修改SpringCloudConfig分布式配置中心的bug。。
9月13号
1.抢红包,秒杀系统的内部细节是怎样的,高并发,计数器,信号量?
2.Redis单线程单进程,为什么支持并发?
采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求
9月12号
1.feign作为客户端进行服务消费。
9月11号
1.eureka。服务提供者,服务消费者。
2.数据库隔离级别。
9月6号
1.eureka。注册和管理服务。
2.maven生命周期。
9月5号
1.准备学习一下微服务。springCloud。
2.继续看《深入理解java虚拟机》。。
3.思考一下真正的编程能力是什么?
9月3号
1.java内存模型。。
2.初步了解分布式。
8月31号
1.HashMap的底层原理。
2.Java内存模型。
8月30号
1.反向代理?到底是什么?
反向代理方式,是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器;
正向代理是通过代理服务器去发起请求,比如我们日常说的"fan墙"。。反向代理则是接受请求。
8月29号
1.json显示乱码。。
2.看《并发编程》。理解不是很透彻。
8月25号
1.mybatis对查询页面和分页页面进行查询。。
8月24号
1.准备继续做项目。要"出活"。。
2.看下AQS、ReentrantLock、Semephore的源码实现。。
3.整合分页页面和查询页面。。再看下折叠的侧栏菜单。
8月23号
1.JUC中各种同步器、锁、容器的源码是如何实现的?看得好吃力。有点难理解。
2.js的bind()、find()、each()等方法。hover。
js二级联动。自动补全。
3.继续阅读rsbc项目。
8月22号
1.并发原理。AQS。AbstractQueueSynchronizer。这是一个基础同步器,ReentrantLock、CountDownLatch都是依靠AQS实现的。
2.ABA问题?
8月21号
1.虚拟机和Idea有冲突。。在Idea内进行复制,然后打开虚拟机会崩溃。
2.360也和虚拟机有冲突。。360有时会对防火墙进行干预,导致虚拟机出错。
3.阿姆达尔定律。不可并发的部分进行代码优化,可以并发的通过多个cpu处理。
8月20号
1.bootstrap的栅栏布局太麻烦了。。左边距经常出现偏差。下边距又太大。功能强大,可以用来适配不同的设备。
2.bootstrap的表单控件。
8月17号
1.idea静态资源更新不及时。。太坑了。
8月16号
1. 黑马程序员--品优购电商系统开发。下载,准备学习。
8月15号
1.线程的状态转换。包括新建new,运行runnable,等待waiting,限时等待timed waiting,阻塞block ,结束terminated
2.jvm的Happens-Before。
3.读《深入理解java虚拟机》。
8月13号
1.如何用Html优雅地显示多个空格?
2.java内存模型中的"有序性"究竟是指什么?
8月10号
1.模仿淘宝或者天猫,写一些基础的界面。加强一下前端基础。做后台,还是得会一点点前端的。
8月9号
1.非阻塞算法。AtomicInteger。CompareAndSet。
2.重排序。Happens-Before。满足Happens-Before原则的,具有有序性。
8月8号
1.准备学习Jvm。
2.SpringCloud、Duobbo,选择其中一个进行学习。
3.阻塞算法:BlockingQueue ,非阻塞的数据结构:AtomicInteger,
AtomicBoolean
等等。
8月7号
1.在SpringBoot中使用Redis。
2.配置logback日志。
3.准备学习一下AQS。
8月6号
1.hash表也称散列表(Hash table),是根据关键码值(Key value)而直接进行访问的数据结构。
也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。
2.Redis的事务机制。
8月1号
1.redis的发布/订阅。
7月31号
1.同事帮我写了个爬虫。。原来2小时的重复工作,5分钟就搞定了。好犀利~我要向大神学习。
2.redis。。支持多种数据类型。
7月30号
1. 死锁:死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序请求同一组锁的时候。
Thread 1 locks A, waits for B 。 Thread 2 locks B, waits for A
7月27号
1.Condition进行线程等待,唤醒线程。
7月26号
1.可重入锁ReentrantLock。读写锁ReadWriteLock。
7月25号
1.java core learning example.
2.java之juc代码实践。
7月24号
1.mybatis的N+1问题,以及延迟加载。
2.java并发中的各种锁。。lock(),unlock()方法。
3. CountDownLatch ??闭锁的作用是什么?
CountDownLatch可以实现计数器效果,让某个线程等待其他线程执行完了再执行。
7月23号
1.下周,准备写个SpringBoot的项目,前后端都自己折腾。
7月19号
1.看书。《Java EE互联网轻量级框架整合开发 SSM框架和Redis实现》
2.copyOnWrite,写时拷背。可以实现读写分离。
7月18号
1.mybatis中的一对多、多对多关联查询。通过<collection>实现。
2.ExecuteService继承自Executor接口。主要是execute()方法。
7月16号
1.git stash的理解。
2.final关键字的进一步理解。
7月13号
1.继续完善CrmSsm的项目。。
2.同步锁,可重入锁,异步锁,自旋锁??
7月12号
1.mybatis的延迟加载?
延迟加载:先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。
<association>中添加select选项就可以指定延迟加载的dao层方法了。
2.Spring的@transactional注解。事务性。
7月11号
1.ConcurrentHashMap。可以一边更新一边遍历。
7月10号
1.idea热部署。
2.温习过滤器Filter,还有监听器Listener.
7月9号
1.多线程中的wait()和notify()方法。。
7月5号
1.ORM,也就是对象关系映射。
2.Spring中的拦截器,可以通过继承HandlerInterceptorAdapter这个适配器来实现
为什么<mvc:interceptors>没法拦截成功,哪里配置错误 ?
3.如何理解Spring中的拦截器要通过动态代理来实现 ?
在动态代理中,一个代理类,可以对应多个主题类。
7月4号
1.js的dom节点的理解 。
$(this).children()
7月2号
1.线程的interrupt()方法。
6月27号
1.mybatis一对一,一对多,还有关联查询?association,collection。
6月26号
1.Thread.yield( )方法:暂停当前正在执行的线程对象,并执行其他线程
8.wait和sleep的区别在哪里?调用sleep方法的线程不释放锁,但调用wait方法的线程释放锁。
9.Thread.join()方法:存在一个线程A,现在插入线程B,要求B先执行完毕,然后再继续执行线程A。
6月25号
1.准备将项目里的jdbc重写成mybatis。。
6月21号
1.mybatis的一些配置。sqlSession,sqlSessionFactory??到底是啥,如何理解?
2.AbstractRoutingDataSource的理解。
6月15号
1.ThreadLocal类?ThreadLocal管理对象,保证对象在各个线程中的唯一性。
6月14号
1.《java并发编程实战》做笔记。
6月13号
1.最近学习好混乱。。一会折腾下这个,一会折腾那个。没什么效果。
2.mybatis中的sqlSessionFactory。。理解。
6月12号
1.mysql 中left join的效率好低啊。。
2.某个表建立索引后,查询速度快很多,但是插入速度会慢很多。
3.继续学习多线程、并发。
6月11号
1.mybatis如何进行多表联合查询?还有,对于mybatis中一对一、一对多的理解。
2.准备着手Dubbo、Redis。
6月7号
1.maven将所有依赖和项目打包,总是出错。。
2.流行的ORM框架Mybatis 和 hibernate ,他们之间的优缺点是什么?Mybatis比较灵活,可以手写sql。Hibernate还需要写hql。
3.Mybatis传递参数$和#的区别是什么?相当于Statement和Preparedment,#{}会自动判断并决定是否给参数加上引号。
6月1号
1.如何快速读懂/理解一个项目?
5月31号
1.仔细看老大给我的三个项目。。还要写完那个没完成的ssm.
5月30号
1.很多linux命令都生疏了。。
5月24号
1.感觉我对ssm框架的实践运用,还是不够。
5月23号
1.所有的异常都直接throws Exception,其实不太好,try catch又不优雅, 如何改进?
2.为什么要使用线程池?因为线程的创建比较费时,通过线程池可以先创建好线程,要使用时直接从线程池里取出,提高效率。
3.SpringMvc的后缀配置。dispatchServlet和集成mvc的xml配置中都有后缀配置,具体的区别在哪??
dispatchServlet是决定处理那些后缀的url,而xml配置是给controller层返回的视图加上固定的后缀
5月22号
1.多了解一些java常用的工具类。
2.mybatis传递多个参数,后面几个参数变成了问号?? #{}和 ${}不可以混用。
5月11号
1.sql语句不熟悉。。只会些基础的。不要太依赖dba,有空还是得自己多深入下。
5月10号
1.java普通类如何调用Spring的Service层方法?为什么总是报空指针?
2.mybatis连接多个数据源。
3.任务调试quartz。
5月9号
1.mysql去重查询、统计。
5月8号
1.差点被自己坑了。。Git有些命令理解不到位。
2.String[]类型,比较List类型。。
5月7号
1.生产环境,怎么部署、运行打包好的jar? 可以通过maven打包。。
2.mybatis,如何一对多,多对多? mybatis在某个数据库的mapper文件中如何联表查询?
3.mysql 如何查询分组后各个组的数量?
5月4号
1.有空可以读一下分页插件pageHelper的源码。
2.IDEA热部署。。不重启Tomcat直接刷新页面就可以了。
5月3号
1.@Autowired无法生效,只能@Resource可以。。在Idea里面,为什么会有这种奇怪的错误呢?
修改一下警告级别就可以了。
4月28号
1.多个线程往同一个文件写入数据,不会造成数据紊乱。。因为io句柄只有一个,是线程安全的。
2.相对路径读取文件。getResource();
4月27号
1.在多线程中,频繁连接数据库,导致出错。
2.数据库连接池dbcp、druid、 hikaricp。
4月20号
1.前端如何获取后台的存储在session或者是request里面的值?
4月17号
1.cglib动态代理还是不太理解。
4月16号
1.为什么在aop注解配置中,通过实现类Autowired会报错呢?jar包冲突。
2.@Service放在接口上面跟放在实现类上面有什么区别?只能放在实现类上。
4月12号
1.运行的aop例子中,为什么只有前置通知,没有后置通知?注解。
4月11号
1.内存泄露问题,如何处理?
4月10号
1.Spring AOP,代理模式,反射。。AOP的理解不透彻。
4月8号
1.SOA架构到底是啥?面向服务架构。
2.union联合多个表进行查询。
3月29号
1.varchar和char的区别是什么?varchar长度可变
2.外键foreign key 怎么用?一个表的字段对应另一个表的主键
3.inner join 怎么用?根据两个表的列之间的关系进行查询。
3月28号
1.SpringBoot集成Mybatis总是不显示日志。而且classpath路径总是出错。。
折腾了半天,原来是少写了根目录/ 。。好低端
3月27号
1.Git Stash
3月25号
1.salt盐值。Md5加密。
3月20号
1.idea自动生成的html5文件里的meta居然是不完整的。。好坑。。
3月19号
1.配置Shiro,进行权限管理
3月16号
1.尝试理解CgLib动态代理的原理。
2.SpringBoot单元测试的注解。。纠结了半天原来是maven的依赖版本有冲突。。
3.Mybatis跟实体类映射时,如果字段个数不一致是如何处理的?查询结果为多个,那么返回的是List吗?
3月15号
1.进行SpringBoot的单元测试。
3月14号
1.回想起一年半前,依赖都是一个个手动导入,测试类也是手动写,代码在公司和家里拷来拷去,觉得好好笑。。哈哈
3月13号
1.为什么在Controller层自动装配服务层,总是会提示出现两个bean?一定得用实现类实例化吗?
依赖注入@AutoWired和@Resource的运用。
3月12号
1.搭建SpringBoot框架。
3月8号:
1.准备总结一下shiro权限控制的用法
3月6号
1.回顾Spring的依赖注入原理。还是挺简单的。
3月5号
1.泛型<T>作为返回类型<T> String 。
3月1号
1.xml的元素、节点、属性解析。
2月27号
1.温习下解析xml、解析json。。
2月1号
1.了解SpringCloud的注解@FeignClient
1月31号
1.在Github上传反射的Class,Field,Method代码。
2.写关于Spring事务的博客。。
1月23号
1.动手写一下反射代码。温习下动态代理。
1月22号
1.SpringBoot缓存。可以通过开源框架Ehcache进行缓存,注解实现。
1月18号
1.事务隔离级别,传播行为。包括脏读取、重复读、幻读。
1月17号
1.动态代理。
2.反射,InvocationHandler,Proxy代理类。
1月12号
1.在Spring中使用JUnit。
2.序列化和反序列化
3.SpringBoot中使用redis。
1月11号
1.<h1 th:inline="text">Hello [[${#httpServletRequest.remoteUser}]]!</h1> 这是什么意思?ThymeLeaf引擎模板。
1月9号
1.Serializable序列化,如何运用?存储和传输文件。
2.重温单例模式。产生疑问:
为什么要用static?为什么要判断等于null才实例化?为什么要加同步锁?
1月8号
1.redis的使用。通过RedisTemplate、ValueOperations进行增删改查。
2.工厂方法模式,抽象工厂模式
1月3号
1.设计模式。简单工厂、抽象工厂模式。
2018年1月2号
1.Synchronized同步锁
12月22号
1.前后端分离?
2.温习一下枚举
12月21号
1.mybatis的resultMap、resultType区别。
2.mybatis返回的结果集是所有City的集合,而不是cityName对应的集合,存在Bug,如何修改?
url路径和参数有问题,跳转到了另外一个Dao层的方法里。
12月20号
1.postman发送请求。
2.SpringBoot的相关注解。
3.准备学习下Mybatis 分页插件 PageHelper
12月15号
1.学习redis。键值对数据库
12月13号
1.sychronized关键字。在java源码中大量运用。
12月12号
1.实现jQuery的autoComplete。
2.springBoot配置mvc前后缀.
12月7号
1.js点击弹出下载框如何实现?zip下载. ResourceEntity
2.jQuery事件绑定
3.提交数据,ajax异步刷新
12月6号
1.温习一下异常处理。自定义异常。
2.家里的项目,同步公司电脑的项目,有些maven包不兼容。。
3.如何避免大量的if(str!=null) {}?在方法的内部先处理好,外部类调用时就不用烦琐地规避空指针。
12月5号
1.Shiro框架。AuthenticationInfo代表了用户的角色信息集合,AuthorizationInfo代表了角色的权限信息集合。
12月4号
1.aop示例的返回值bug
2.NameMatchMethodPointcutAdvisor通知类如何应用?
3.一边查资料。一边看jdk源码。。终于有点进展了。看明白了点BufferedOutputStream。
为什么说字符流才有缓存区,字节流里貌似也用到了缓存?
12月1号
1.重温Spring的依赖注入。
11月27号
1.准备重温一下拦截器。
2.web作用域page、request、session、application
3.shiro框架的权限管理
11月24号
1.如何理解ThreadLocal类?
11月23号
1.如何释放无用的对象、集合?
2.数据量比较大如何排序,比如1G的数据,怎么快速排序?
4.装箱类型。。集合和反射为什么要使用装箱类型?
11月22号
1.将文件中的某些数据代换为数据库内查询结果。
2.通过StringBuilder拼接字符串性能较好。
11月21号
1.研究一下IO流的细节,有空可以看下jdk的IO包源码
2.准备深入多种排序的细节
11月20号
1.Collections.sort()进行集合的排序。
2.如何用compareTo()比较多个属性进行排序?Collections.sort()
3.github里面javaDemo的代码,需要重写。去除大量无用的main()方法.
11月10号
1.接下来准备学习下jQuery的遍历。
11月8号
1.阅读MultipartFile源码.
2.输入流(InputStream)、输出流(OutputStream)。字节流、字符流。
FileOutputStream,如果文件不存在,会自动创建。路径不存在,则会报错找不到文件。
3.timeStramp和date,datetime的区别。
11月7号
1.aquery实现页面功能,ajax异步刷新页面.
2.ajax进行get操作时,传输的data能否是json?
3.队列的实现
11月6号
1.文件上传MultipartFile上传文件
11月2号
1.mybatis进行limit操作时,传输参数的格式? limit #{param1} , #{ param2 }
2.html如何获取js函数的返回值?
3.web程序,如何进行单步调试? 设置断点
10月31号
1.分页操作。
10月23号
1.链表,增删改查。
10月17号
1.jQuery获取、改变元素内容
2.线性数据结构。
10月15号
1.继续jQuery。
10月13号
1.下载webStrom。温习下基础的js。
10月12号
1.学习下w3c的JQuery.
10月10号
1.学习SpringBoot项目
9月14号
1.这几天在gitHub看项目。简易博客,教学系统
9月3号
1.最近帮忙统计业务的异常情况。读取多个excel,然后计算数量。。
8月24号
1.写博客。java数据类型转换.poi使用.
8月15号
1.如何修改mapper.xml文件,进行sql语句编写?
2.进行账号验证等功能.
8月12号
开始尝试用ssm进行增删改查~
8月11号
终于把ssm项目给跑起来了。继续学习!!
8月8号
初步接触ssm框架。没法整合spring和mybatis
7月31号
建立maven项目后,如何自动生成spring等配置文件?
7月26号
1.spring的面向切面编程中,拦截器为什么要用到proxyfactorybean?
代理模式。。
7月25号
1.这周工作太忙了。都没怎么学习。
7月18号
完成图书的展示。接下来准备使用分页,将各本图书的信息分成几页展示。
再继续学习《web整合开发》中的spring内容。
7月14号
1.将图书管理系统加入Struts2框架。。下周准备进行book表的图书展示。
7月11号
1.温习一下static的作用.
7月7号
7月6号
1.图书管理系统,注册新用户。hibernate插入数据。
7月5号
1.最近工作好忙。没什么时间学习。
6月29号
1.思考spring的依赖注入。
6月27号
1.创建了数据表,开始尝试用hibernate进行
6月21号
log4j为什么不能在servlet里面打印log呢?
servlet怎么调试?(代码没有进入servlet里面,所以没有打印log)
6月20号
为什么servlet重定向时,需要用回应(resp)来调用,而不是请求(req)呢?
6月19号
工作实在太忙了。白天没空学习了。晚上学了一会。前端页面网上找的,后台自己写。
5月31号
放完端午回来。看着项目还是觉得很迷茫 。。写不出什么东西来。
5月25号
1.我有点心急了。。前天才刚接触Struct2,今天就想掌握。
一天就想配置好几个项目,有点急于求成了。哈哈
5月24号
1.Struts2的配置与使用。
5月22号
1.Hibernate的配置与使用。
5月19号
1. 看了一下项目里的Hibernate。。
我对反射的了解不太够。还得加强。
5月18号
1.学习一下注解。。
5月17号
终于把项目配置的bug解决了。。
5月12号
1.这几天在配置项目的jar包。。搞得头都大了。
看来得认真学下maven、注解方面的知识
5月9号
1.配置数据源.
5月3号
1.重温一下过滤器Filter、监听器Listener.
5月2号
1. 接触spring配置bean
4月24号
1.阅读web项目代码。。有点迷糊。
4月20号
1.学习《重构》和ajax。
4月17
1.javascript事件、对象.
4月14
1. 重构!!!
4月10号
1.初步接触ajax。阿贾克斯。哈哈。局部刷新。
这个ajax还涉及到javaScript。。所以还是先学一下js吧。
4月7号
1.jstl。尽量在jsp页面少出现java代码。实现页面和java代码分离
4月1号
1.学习表达式语言el.
3月30号
1.div(区域),li,ul(无序列表),ol(有序列表)
3月27号
1.初识jsp的标签
3月24号
1.正则表达式的运用Patter、Match
3月22号
1.jsp指令、内置对象
3月15号
1.学了一些html,准备继续jsp,学到了表单.
3月14
1.完成查询停复机的任务
3月1-7号
1.强化servlet
2月27号
1.运用debug技巧,实践强化记忆。
2月24
1.学习git管理版本 ,分支处理
2月21号
1. 下载开源中国app的源码,学习研究!
2月17号
1.单元测试.Juint
2月16号
1.fresco架构.博客解读
2月14
1.如何提高调试能力?step into,step out这些具体代表什么?
step into:单步执行,遇到子函数就进入
step over:单步执行,遇到子函数不会进入,直接跳过
step out:单步执行,跳出子函数
2.尝试撰写报竣状态的工厂模式、接口、类
3.弄明白了静态方法和实例方法的区别
2017年2月9
1.fresco加载图片的使用方法;
2.阅读fresco的源码