『程序人生』我的编程入坑之旅,一入编程深似海,从此节操是路人
刚开始接触的是Java的一些基础知识,始终记得最开始连配置Java环境都记不住。后面发现压根就不用记住,亲自配一遍,用实践来检验。写一篇博客记录下来,下次使用就方便多了,用多了自然就熟练了。
配置JDK环境变量,工欲善其事,必先利其器。
还有第一次是在不用编辑器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的详细使用方法。
Linux(Centos6.5)下搭建SVN环境
Eclipse for JavaEE官网直通车
第二年终于开启了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开发
紧接着又恶补了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=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
五、回忆之JavaScript
学完Oracle之后,接着迎来了JavaScript这门前端必备的编程语言。
前端同学必备学习编程语言,当然随着业务需求后端开发也是要会的,国外很流行全栈工程师,当然在国内全栈工程师肯定也是很吃香的,想想老板请你一个顶几个,偷着乐。
个人理解,一般都是和HTML网页搭配着使用,写完js文件,举个例子使用:
标签引入。
还有引入方法,给出例子如下:
还有经常使用到的var定义变量,值得注意的是现在java也支持了。其它的就不多说了,后面接着聊JSP。
六、回忆之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 针对错误网页,未捕捉的例外。
七、回忆之ssh框架
继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框架
把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获取)
最后总结我的面试经验
2021年的金三银四一眨眼就到了,对于很多人来说是跳槽的好机会,大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。
另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。
BAT面试经验
实战系列:Spring全家桶+Redis等
其他相关的电子书:源码+调优
面试真题:
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
编程能力和抽象思维能力。
[外链图片转存中…(img-koGXlX0I-1712068733655)]
BAT面试经验
实战系列:Spring全家桶+Redis等
[外链图片转存中…(img-8zEIMXqb-1712068733655)]
其他相关的电子书:源码+调优
[外链图片转存中…(img-pG1RCu2S-1712068733656)]
面试真题:
[外链图片转存中…(img-0lngAXUE-1712068733656)]
[外链图片转存中…(img-6Twb8STS-1712068733656)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
-