Fork me on GitHub

如何快速成长为技术大牛?阿里资深技术专家的总结亮了!

导读:你是否有类似这样的问题——“天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码?”今天,阿里资深无线开发专家李运华,系统梳理了自己的思考和理解,希望帮助更多同学少走一些弯路。

写在前面

不管是开发、测试、运维,每个技术人员心里多多少少都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。
然而“梦想是美好的,现实却是残酷的”,很多同学在实际工作后就会发现,梦想是成为大牛,但做的事情看起来跟大牛都不沾边,例如,程序员说“天天写业务代码还加班,如何才能成为技术大牛”,测试说“每天都有执行不完的测试用例”,运维说“扛机器接网线敲shell命令,这不是我想要的运维人生”。
我也是一位程序员,所以我希望通过以下基于程序开发的一些例子,帮助大家解决这些困惑。大道理是相通的,测试、运维都可以借鉴。

几个典型的误区

阅读更多...

图解Java常用数据结构(一)

原文来自 微信公众号 Java团长

原文:cnblogs.com/xdecode/p/9321848.html

最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程.

主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向列表不再是回环的.

HashMap中的单链表是尾插, 而不是头插入等等, 后文不再赘叙这些差异, 本文目录结构如下:

mark

LinkedList

经典的双链表结构, 适用于乱序插入, 删除. 指定序列操作则性能不如ArrayList, 这也是其数据结构决定的.

add(E) / addLast(E)

mark

add(index, E)

阅读更多...

SPRING 面试题

示例 1 : 什么是IOC

IOC: Inversion of control 反转控制。 比如以前创建一个对象,需要自己主动new 一个对象,通过IOC,对象的创建交由Spring框架 创建,开发人员直接使用已经创建好的对象。

参看 Spring教程中的例子

示例 2 : 什么是DI

DI: Dependency Injection 依赖注入。 通过IOC创建对象的时候,可以注入字符串甚至其他对象。 比如DAO就会注入session factory.

通常IOC和DI是紧密结合,一起使用的

示例 3 : 什么是AOP

AOP: 面向切面编程。

把功能划分为核心业务功能和其他的周边辅助功能,比如日志,性能统计,事务等等。 其他的周边辅助功能可以都看作切面功能。核心功能和切面功能分别独立开发,通过面向切面编程,可以有机的把核心业务功能和切面功能根据需求结合在一起。 比如增加操作可以和事务切面结合在一起,查询操作可以和性能统计切面结合在一起。

在配置方面,要配置切面,切点,并且通过aspect:config 把切面和切点结合起来。

AOP

10年Java老鸟忠告:技术人这4个错别再犯了!

本文来自微信公众号号 Java团长

原文 10年Java老鸟忠告:技术人这4个错别再犯了

指出的4个误区值得学习和改进

坐标魔都,人来人往的研发团队到现在近两百人,看过领导离职创业,也看过太多跳槽,看到更多的是技术人的懒惰与错误。

给年轻的技术人几个忠告,希望你别犯这些错误:

1、公司的目的不是培养你

公司的目的是盈利,招你进来不是让你学习的,是为了让你创造利益。盈利的前提下,公司会尽力培养你,但是更多的时候能力成长还是得靠自己。见过太多以“在公司学不到东西”为离职理由,想告诉你跳槽并不能带来能力提升,学习能力弱的人,在哪里都没用,除非真是你的能力已经需要更好的平台。

不信?考考你,这么多公司都在用的ssm框架,下面这个学习笔记的内容你会多少。

mark

2、沟通能力真的决定你的职场发展

是不是抱怨过“他技术比我弱,为什么成了我的领导”。

内向和技术迷不是你的挡箭牌,拥有良好的沟通能力,不仅在工作中能快速理解对方的意思,更能让你更好的表达出自己的观点。

职场就是江湖,江湖就是人与人的沟通来往,不管你技术怎么样,尽早学会以管理者的思维看待事物,不仅能免去你很多对管理者无谓的抱怨,还能让你展现出“领导力”成为培养对象。

技术知识和管理知识是互补的,建议你了解一下BATJ和国外很多公司都在施行的一套管理知识体系PMP,附上一张图,内含PMP体系的知识要点。

阅读更多...

session和cookie的区别?

来自视频 Java面试必备要点

Session和cookie都是会话(Seesion)跟踪技术。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。但是Session的实现依赖于Cookie,sessionId(session的唯一标识需要存放在客户端).

cookie 和session 的区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗

考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、所以个人建议:

  • 登陆信息等重要信息存放为SESSION
  • 其他信息如果需要保留,可以放在COOKIE中,比如购物车

购物车最好使用cookie,但是cookie是可以在客户端禁用的,这时候我们要使用cookie+数据库的方式实现,当从cookie中不能取出数据时,就从数据库获取。

J2EE常见面试题

前端

示例 1 : 常见的选择器

元素选择器
id选择器 对应#符号
class选择器 对应.符号

详见CSS选择器

示例 2 : 行内元素有哪些?块级元素有哪些?

块级元素:div p h1 h2 h3 h4 form ul
行内元素: a b i span input select

示例 3 : 前端页面有哪三层构成,分别是什么?作用是什么?

结构(内容)层 Html
表示层 CSS
行为层 js

阅读更多...

RESTful API

  • 面向资源(resource)编程
  • 资源指的就是一类数据
  • 产品表 -> 就是产品资源
  • 最重要的是如何表示一个资源
  • 地址即资源
1
2
3
4
- http://api.demo.com/users			  -> 应该是所有的用户数据
- http://api.demo.com/products -> 所有的产品数据
- http://api.demo.com/prodects/iphone -> 特指 iPhone这个商品
- http://api.demo.com/users/1/articles
  • 对于资源我们的代码中可能的操作只有 增删改查
  • 在HTTP协议中对每一个请求URL都不会有不同的GET/POST/PUT/PATCH/DELETE

GET:获取

POST:新增

PUT:更新

DELETE:删除

进程和线程

来自视频 进程和线程

进程

进程是资源分配的最小单位

  • 什么是进程
    • 进程是指在系统中正在运行的一个应用程序
    • 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内
  • 比如同时打开迅雷、Xcode。系统就会分别启动

个进程

mark

  • 通过“活动监视器”可以查看Mac系统中所开启的进程

线程

  • 什么是线程
    • 一个进程要想执行任务,必须得有线程(每一个1进程至少要有1条线程
    • 一个进程(程序)的所有任务都在线程中执行
阅读更多...

SQL语句优化

减少使用子查询

不要使用select *

使用select *的话会增加解析的时间,另外会把不需要的数据也给查询出来,数据传输也是耗费时间的,

谨慎使用模糊查询

当模糊匹配以%开头时,该列索引将失效,若不以%开头,该列索引有效。

不要使用列号

使用列号的话,将会增加不必要的解析时间。

in 和 not in 也要慎用,否则会导致全表扫描

1
2
3
select id from t where num in(1,2,3)	
对于连续的数值,能用 between 就不要用 in 了:
select id from t where num between 1 and 3

应尽量避免在 where 子句中对字段进行表达式操作

阅读更多...
  • Copyrights © 2015-2023 高行行
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信