数据结构与算法——先导篇(课程大纲与环境搭建)
很久没有更新文章了,后面准备连载一个关于《数据结构与算法》的系列教程,喜欢的同学记得分享转发。
1、第一印象
(1)复杂、深奥、难学?
一提到数据结构与算法,大家对它的第一印象就是:复杂、深奥、难学。其实,大家之所以这么认为的原因主要是没有找到正确的学习资料和学习方法。
(2)不常用?
还有一些同学认为,数据结构和算法在平时的项目开发中不常用,不懂数据结构和算法同样可以应对相应的工作。这是因为很多人“面向接口编程”、“面向百度编程”。其实,并不是工作中用不到,而是还没有达到那个层次。
我们在项目开发中很多东西都是使用第三方框架来完成的。其实,在很多第三方框架底层都大量使用了数据结构与算法。如果你能灵活掌握数据结构和算法的话,你便可以更好地去阅读这些框架的源码,也能更好地体会框架的设计思想,进而更好地去使用这些框架。
当你的用户达到一定程度(如上百万、上千万、上亿)的时候,你必然会用到数据结构与算法。
2、Why数据结构与算法?
名企面试必考,它考验的是一个人的技术功底和长期积累
有利于写出性能更高的程序
有助于快速学习新技术
一次掌握,终生受益
数据结构与算法功底扎实的程序员,技术实 ...
使用Ajax获取数据,选择“同步”还是“异步”
1、问题描述
我们在web项目中经常在JS中使用ajax函数获取数据,并将获得的数据返回供其他函数所用。例如定义如下函数:
12345678910111213141516171819function getData(){ var dataVal = null; //(默认)使用异步获取数据 $.ajax({ type:'POST', url:'URl', dataType:'text', cache : false, //不缓存 success:function(data){ dataVal = data; return dataVal; //其实这个return只是 //返回ajax中function的返回值。 //而不是getData()的返回值。 } }); ...
Java到底怎么学?(二) Java技术路线指引篇
引言
在了解了Java的生态体系和基本概念后,野生程序员要想真正入坑Java程序开发还需要先对Java的技术路线有一个清晰的认识。
本文重在为小白理清学习路线,大神请绕行。
一、基础知识
(1)编程语言
主要学习Java语法。(有C++基础上手更快)
可以通过书或网络教程学习。
不用刻意记忆,关键在于实践。
(2)基本算法
主要学习数据结构、查找算法、排序算法等。
(3)基本网络知识
主要学习计算机网络。
TCP/IP协议
现在的互联网如此发达主要得益于TCP/IP协议。
HTTP/HTTPS协议
现在流行的Web应用主要得益于HTTP/HTTPS协议。
(4)基本的设计模式
如单例模式、模板模式等。
二、工具
(1)操作系统
Linux(CentOS、Ubuntu等)
(2)代码管理
SVN
Git
(3)持续集成/持续交付/持续部署
即:CI(Continuous Integration)、CD(Continuous Delivery)、CD(Continuous Deployment)。
偏运维范畴,Java开发也应该有一定的了解。
Jenkins ...
Java到底怎么学?(一)Java生态体系扫盲篇
引言
相信曾几何时很多同学都想入坑Java,刚开始便被一堆陌生的技术名词(有过时的,有没过时的)弄的晕头转向,不知道该学哪个,剪不断理还乱,愁愁愁,别是一般滋味在心头。
苦于无人引导入门,便在网上查找资料从Java基础语法开始学习,数周后仍不知所学知识有何用武之地,于是便在Java技术体系下左顾右盼,在Java门前迷茫数月后,最终选择放弃。
其实,在学习Java相关具体技术之前,先将其技术体系、技术路线之类的东西理清楚,再埋头苦学才能真正入坑Java。
一、Java技术生态体系科普
Java是由Sun公司(后来被Oracle收购)于1995年5月推出的一种高级程序设计语言。
Java技术体系至少包括4个部分:
(1) Java程序设计语言
即:基本语法。
(2) 各种平台上的Java虚拟机(JVM)
JVM(Java Virtual Machine)即Java虚拟机,它是Java的一大特色,Java语言使用JVM这一魔法神器屏蔽了与具体系统和平台相关的信息,从而使得Java语言编译的程序只需生成在Java虚拟机上可运行的目标代码(字节码)即可,JVM会将字节码解释成具体平台的机器指令 ...
哀悼!
今日,2020 年 4 月 4 日,清明,国家公祭日。
警钟长鸣
逝者安息
向英雄们致敬
附:新冠肺炎疫情防控牺牲烈士简要情况
1.王兵,女,汉族,1947年10月出生,湖南湘潭人,中共党员,生前系武汉市洪山区王兵西医内科诊所主治医生。新冠肺炎疫情发生以来,在医疗资源极为紧张的情况下,王兵同志不顾个人安危,主动参与疫情防控工作,坚持开门接诊救治患者,在工作中不幸感染新冠肺炎,于2020年2月18日经抢救无效以身殉职。2020年3月被国家卫生健康委员会、人力资源和社会保障部、国家中医药管理局追授为“全国卫生健康系统新冠肺炎疫情防控工作先进个人”。
2.冯效林,男,汉族,1954年5月出生,湖北武汉人,1973年10月参加工作,生前系黄陂区人民医院中医科返聘的副主任医师。新冠肺炎疫情发生以来,冯效林所在的盘龙城院区被黄陂区防控指挥部作为定点医疗机构收治患者,他每天坚持接诊救治患者,在工作中不幸感染新冠肺炎,于2020年2月27日经抢救无效以身殉职。
3.江学庆,男,汉族,1964年3月出生,湖北洪湖人,中共党员,1986年7月参加工作,生前系武汉市中心医院甲状腺乳腺外科党支部书记 ...
一种基于ccs3的timeline实现方法
引言
在web项目中我们经常要使用时间轴(timeline)控件。本文提供一种基于CSS3的可逐项展开的timeline,在各展开项中可以嵌入文本、图片、视频等元素。运行效果如下:
实现
该控件的实现过程较为简单,主要由test.html文件和timeline.css文件组成。具体代码如下:
1、test.html文件
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1 ...
不同JS文件之间函数的相互调用
引言
当我们使用JavaScript写一个复杂界面的业务逻辑时,经常会把所有的函数写在同一个JS文件中。然而随着功能的不断增加,这个JS文件会变得又臭又长,所有的功能像一团乱麻一样交织在一起,自己都不想回头看。为了避免这种情况的发生,我们应该在开始编码的时候就对不同的功能进行封装(即:将不同的业务逻辑写在不同的JS文件中),进而降低代码的耦合性。
因此,就会出现不同JS文件之间函数的相互调用问题。
调用方法方法很简单:我们只需将不同的JS文件在同一个html文件中引用,即可在任一JS文件中调用其他JS文件中的封装的函数了。
根据调用函数位置的不同,我们可以将函数调用方式分为全局调用和局部调用两类。
需要注意的是:不同的调用方式,细节上稍有区别。
1、全局调用
所谓全局调用,就是在函数外部调用其他JS文件中封装的函数。
(1)被调用的JS文件先引用
例如:test.html文件
1234567891011<!DOCTYPE html><html lang="en"><head> <meta charset="U ...