刚开始接触的是Java
的一些基础知识,始终记得最开始连配置Java
环境都记不住。后面发现压根就不用记住,亲自配一遍,用实践来检验。写一篇博客记录下来,下次使用就方便多了,用多了自然就熟练了。
还有第一次是在不用编辑器eclipse
或者idea
这类软件的情况下,编写一个hello world
使用javac
[Demo.java]进行编译,编译后输入java
[Demo]输出结果,这是在win
下面的dos
环境下使用的,已经配置过JDK
环境变量了。
当然在linux
下使用方法也差不多,纯字符界面,用vim
编辑器编辑后保存,然后使用javac
命令编译,java
命令进行输出。我这里方便演示就没改了,当然工作空间路径不建议使用中文或者有空格,最好用英文有意的文件路径,方便自己记忆查找。
还是讲详细点吧,使用命令[d:]进入D盘,然后cd [接你的文件路径名],切到Demo.java目录下。
后面就开始了使用eclipse
进行开发了,快捷键很多,熟练使用后可以达到事半功倍的效果。
列举几个简单的快捷键
-
Ctrl+1
万能提示键 -
Ctrl + shirt + r
全文搜索 -
Ctrl + f
查找 -
Ctrl + shirt + f
格式化代码
这几个还是挺实用的。关于下载链接,下面给出官网直通车,不一定要用最新版的,肯定是用最稳定的版本。讲点后期工作中涉及到的,一般是使用SVN或者git进行多人协作开发,下面也给出SVN的安装与简单的使用方法,后续有时间再更新Git
的详细使用方法。
第二年终于开启了Java基础知识的大门。
基础语法,Java
常量与变量、Java
运算符、Java
流程控制之选择结构、Java
流程控制之循环结构、Java
数组之一维数组、Java
数组之二维数组以及Java
方法,数组移位与统计。
依稀还记得学完后的的期末考试最后一道题,使用for
循环写一个简单的1+2+...+100
的求和sum
。
里面的知识就不细讲了,聊下去都可以写好几篇文章了,就不多BB了。
接着Java
基础往后,就是Java
编程技术开发了,属于进阶知识范畴。
-
Java
面向对象多态、封装和继承以及单例模式。 -
Java
常用工具类 ,Java
异常 ,Java
包装类,Java
字符串 ,Java
集合 ,Java
集合排序 ,Java
泛型,Java
多线程,Java IO
输入输出流以及JDBC
的使用。
这里也不做过多的赘述,就给出一个简单的BuddleSort
(冒泡排序,稳定,O(n2)),有些公司对应届生都会问到这个算法,笔试题上也会经常出现,当然掌握一些其它的更好:归并排序(稳定,O(nlogn))、快速排序(不稳定,O(nlogn))、堆排序(不稳定,O(nlogn))、二叉树排序(稳定,O(nlogn))等等。
其实上面的代码有点小问题,细心的同学是不是发现了array.length
出现了很多次,可以抽出来赋值(int n = array.length;)
给n
,看起来也舒服一点。是不是很纳闷,我怎么不直接贴代码,直接粘贴复制没多大意义,在于平时带着理解多练练,自然就会了。
建议初学的时候能手动敲,尽量手动完成代码,不要想着走捷径。
编程这个行业是没有捷径可走的,有的只是前人通过自己的经验总结出来的,让你在学习的大方向上少走弯路而已。
紧接着又恶补了Android
基础和进阶这两本书,当然也涉及到了SQLLITE
数据库的知识点。
前面也讲到了,由于Android
在我们毕业的那一年并不是很吃香,就业形势不是很好,就被舍弃掉了。当时还是很喜欢Android
开发的,毕竟开发完后可以看到优美的界面,不像Javaweb
那样只是编写API
接口和一些前端的JS
,只能看到后台管理界面感觉很枯燥乏味。
学完Java
编程进阶篇后,就开启了Oracle
数据库的学习之旅。
在这之前其实已经有了SQLServer
的基础,学习来相对简单一些。印象比较深的是一些聚合函数sum
,min
,max
,avg
,count
统计函数。还有联合查询,主要有inner
join
内连接,left outer join
左外连接,right outer join
右外连接,full outer join
全外连接。还有分页查询Oracle
与MySQL
的有所区别,MySQL
的是使用limit
关键字。
当然还有一些SQL
高级知识,比如游标,存储过程和视图这些可以去了解使用的方法,这里不做过多赘述。也不深究怎么去安装Oracle
数据库了,CSDN
上应该有不少很详细的教程。
Oracle
的分页查询是这样的,以scott
账户下的emp
表为例子:
首先查询一下emp表
Select * From scott.emp
–查询第6~11数据通过嵌套子查询,使用到关键字Rownum和where
Select * From (Select emp.empno,Rownum r From emp Where Rownum<=11) Where r>=6
先进行排序,再分页查询
–排序
Select * From emp e Order By e.empno Desc
–分页
Select * From (Select e.*,Rownum r_num From(Select * From emp e Order By e.empno Desc )e)b Where b.r_num between 6 And 11
学完Oracle
之后,接着迎来了JavaScript
这门前端必备的编程语言。
前端同学必备学习编程语言,当然随着业务需求后端开发也是要会的,国外很流行全栈工程师,当然在国内全栈工程师肯定也是很吃香的,想想老板请你一个顶几个,偷着乐。
个人理解,一般都是和HTML网页搭配着使用,写完js
文件,举个例子使用:
<script src="js/mui.min.js"></script>
标签引入。
还有引入方法,给出例子如下:
还有经常使用到的var
定义变量,值得注意的是现在java
也支持了。其它的就不多说了,后面接着聊JSP
。
学完JavaScript
后,开始了新的征程。
这是进入到Web
开发中,一开始不是ssh
和ssm
这些,而是JSP
和servlet
。
说道JSP。我前几年出去面试时已经很少遇到公司会问了,但是还是得做些准备。
4大作用域和9个内置对象还是有印象的。
4大作用域介绍。Application
作用于整个应用程序。page
作用于页面。request
代表与 Web
客户机发出的一个请求相关的对象和属性,可能跨多个页面。session会
话属性,经常会跨越多个客户机请求。
9个内置对象。内置对象包含request
用户端请求,此请求会包含来自 GET/POST
请求的参数,response
网页传回用户端的回应,pageContext
网页的属性是在这里管理,session
与请求有关的会话期,application servlet
正在执行的内容,out
用来传送回应的输出,config servlet
的构架部件,page JSP
网页本身,exception
针对错误网页,未捕捉的例外。
继JSP
之后,才开始学习了当时大公司都在用的ssh
框架。
根据个人理解整理。ssh
指的是Struts2
(相对于springmvc
就有点老了)、Spring
(相信大家应该有所了解)以及Hibernate
(ORM
持久化框架)。
肯定会有疑问,Struts2
和Struts
是啥关系,之前学的时候注意到介绍Struts2
是以webwork
为核心。Spring
是一个轻量级web
容器框架,尤其是SpringAOP
面向切面和SpringIOC
控制反转这两块在面试中提到比较多。Hibernate
底层封装了JDBC
,一款开源关系映射框架,编写DAO
数据访问层更方便了。
Struts2 是目前较为普及和成熟的基于MVC设计模式的web应用程序框架,它不仅仅是Struts1
的升级版本,更是一个全新的Struts架构。最初,是以WebWork框架和Struts框架为基础,通过提供增强和改进的Struts框架,进而实现简化web技术人员开发工作的目标。不久之后,Webwork框架和Struts社区联合创造了现在流行的Struts2框架。
ssh
框架学习完后,快到第三年了。期末考试弄了个ssh
框架整合,具体也记不清了,反正用MVC
三层架构写了个CURD
就算通过考核了。
再后来就是去工厂流水线实习,无力吐槽。
计算机专业跑去流水线实习半年,学的知识怕不是忘掉了大部分。也不知道大专暑假出去实习,是不是都被学校安排进了流水线,学校和工厂是否有PY交易就不得而知了。犹记得当时我因为体检时某一项超了一点,电子厂居然不让进去了,来回的车费算是打水漂了,当做暑期去常州的一次旅行了。
紧接着就是校企合作,美其名曰校企合作。其实真实情况就是与培训机构合作。
来到了培训公司的分部,当时在武汉软件新城。进行了为期5个月左右,不到半年的培训。
学习一些大学没教过的知识点,用小项目来练手。最开始是写ssh
框架的,基本上后台页面使用jsp
进行开发的,前后端分离当时也没涉及到。边做项目时,用到jQuery
就是现学现用,ajax
也一样。后面开启了ssm
(springmvc+spring+mybatis
(ORM
持久化框架,底层封装JDBC
)),在这期间使用到了easyUI
现学现用,使用到了maven
中央仓库,不再是用传统的导入jar
包形式。当然还用到了svn
,以小组形式,每组5人协作开发。
把ssm
框架单独拿出来聊一聊吧,spring
就不多聊了,用起来很爽,字面意思就看出春天来了。让我想起了一首歌的歌词:春天花会开,鸟儿自由自在。看看springmvc
的介绍
提供了构建 Web 应用程序的全功能 MVC 模块
后期进化到springboot
,进一步简化了pom.xml
配置文件,超级进化就是springcloud
微服务架构了,有兴趣的可以去了解了解。现在springboot越来越受欢迎了,值得大家去学习学习。看看官网的截图,spring官网直通车
用了mybatis后是真心觉得好用,个人觉得配置比hibernate用起来舒服多了。
======================================================================
mybatis3在github上的开源代码我就不做过多介绍了。
mybatis-plus,是mybatis的增强工具,很多公司目前也在用,建议大家去了解一下,会有意想不到的收获,在之前还是建议了解下原版的mybatis。
相信很多人都用过:程序员都在用的网站,你值得拥有,github
GitHub访问太慢,建议使用gitee:https://gitee.com/
培训结束后,就各奔东西了。
由带队老师带领想去哪些大城市找工作的,基本上是在地铁口附近租房子。前期让你写完个人简历,然后海投简历(包装1到2年,懂得都懂)。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

总结
我个人认为,如果你想靠着背面试题来获得心仪的offer,用癞蛤蟆想吃天鹅肉形容完全不过分。想必大家能感受到面试越来越难,想找到心仪的工作也是越来越难,高薪工作羡慕不来,却又对自己目前的薪资不太满意,工作几年甚至连一个应届生的薪资都比不上,终究是错付了,错付了自己没有去提升技术。
这些面试题分享给大家的目的,其实是希望大家通过大厂面试题分析自己的技术栈,给自己梳理一个更加明确的学习方向,当你准备好去面试大厂,你心里有底,大概知道面试官会问多广,多深,避免面试的时候一问三不知。
大家可以把Java基础,JVM,并发编程,MySQL,Redis,Spring,Spring cloud等等做一个知识总结以及延伸,再去进行操作,不然光记是学不会的,这里我也提供一些脑图分享给大家:
希望你看完这篇文章后,不要犹豫,抓紧学习,复习知识,准备在明年的金三银四拿到心仪的offer,加油,打工人!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
一问三不知。
大家可以把Java基础,JVM,并发编程,MySQL,Redis,Spring,Spring cloud等等做一个知识总结以及延伸,再去进行操作,不然光记是学不会的,这里我也提供一些脑图分享给大家:
[外链图片转存中…(img-xkDCojMI-1712248336979)]
[外链图片转存中…(img-YhwTzfzd-1712248336979)]
[外链图片转存中…(img-71lxIRgt-1712248336980)]
希望你看完这篇文章后,不要犹豫,抓紧学习,复习知识,准备在明年的金三银四拿到心仪的offer,加油,打工人!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!