学习笔记

学编程的起点——编程常识知多少

前言: 刚去大学那会,我就知道我被录取的学院是软件学院,还知道一点就是软件学院主要是学电脑的,但具体要学什么其实一无所知。待的时间久了,慢慢的,像“编程”、“软件”、“系统”、“显卡”、“网卡”这样的一些词时常在耳边萦绕,怪我之前对电脑接触不多,对别人来说是常识性的东西对我而言却是一头雾水,理解起来感觉很抽象,让我迷茫了许久。直到后来,听人说多了,百度搜多了,理解加深了,该明白的也都明白了。等我明白之后,我反思,这么简单的东西为什么经过了如此长的时间才明白,至少有两点:第一,隔行如隔山,之前根本没接触过的领域,贸然前行致盲是肯定的;第二,缺少专业引导,身边的人对电脑的理解程度层次不齐,对那些从小电脑玩的飞起的人来说,刚入行的人问的问题就像刚上学的小学生问大学生1+1等于几,所以小白不好意思开口问,大佬也不好意思开口答,这种默契带来的伤痛只能由时间去化解。花费时间是有成本的,好多时候时间就是金钱,尤其在大学的软件专业,高昂的学费就是你的学习成本,你把这些成本花费在无关痛痒的“常识”身上,替钱不值,但是你不花时间在这些“常识”身上,有时也会让你进退两难,换位思考之下,我决定把我通过花费时间成本学习来的“常识”分享给即将入校的学弟学妹们,祝你们在大学学习愉快! ...

老司机也晕车--java字符串String晕车之旅

首先声明,有晕车经历的司机请自备药物,String也可能让你怀疑人生! 老司机也晕车!--java字符串String晕车之旅 第一道 开胃菜 请听题!第一道题: 复制代码 String hello="hello world!"; String hello1=new String("hello world!"); System.out.println(hello==hello1); System.out.println(hello.equals(hello1)); ...

迭代器模式随想

一、什么是迭代器模式? 定义:提供一种顺序访问集合的方法,而不暴露集合内部的表示 顺序访问,one by one(挨个访问),不暴露集合内部表示,反映了面向对象程序中的封装性。可以这么理解,一组模特从后台出场,一个接着一个,但是先出场的模特,未必是站在最前面的模特。换句话说,对于观众,你不知道后台模特的特定位置。为什么是顺序访问呢?因为迭代器模式采用的输出机制是内部决定好的,你无法决定。不像字典类型,我传不同的key,可以访问不同的value。我们访问列表,可以直接访问第i个元素,但是迭代器,你想要访问下一个元素,必须把当前的元素访问过后,才能到下一个元素。 ...

好消息:IM1.0.0版本已经上线啦,支持特性:

私聊发送文本/文件 已发送/已送达/已读回执 支持使用ldap登录 支持接入外部的登录认证系统 提供客户端jar包,方便客户端开发 github链接: https://github.com/yuanrw/IM 前言 首先讲讲IM(即时通讯)技术可以用来做什么: 聊天:qq、微信 直播:斗鱼直播、抖音 实时位置共享、游戏多人互动等等 可以说几乎所有高实时性的应用场景都需要用到IM技术。 本篇将带大家从零开始搭建一个轻量级的IM服务端,麻雀虽小,五脏俱全,我们搭建的IM服务端实现以下功能: 一对一的文本消息、文件消息通信 ...

GIS基础知识 - 坐标系、投影、EPSG:4326、EPSG:3857

最近接手一个GIS项目,需要用到 PostGIS,GeoServer,OpenLayers 等工具组件,遇到一堆地理信息相关的术语名词,在这里做一个总结。 1. 大地测量学 (Geodesy) 大地测量学是一门量测和描绘地球表面的学科,也包括确定地球重力场和海底地形。 1.1 大地水准面 (geoid) 大地水准面是海洋表面在排除风力、潮汐等其它影响,只考虑重力和自转影响下的形状,这个形状延伸过陆地,生成一个密闭的曲面。虽然我们通常说地球是一个球体或者椭球体,但是由于地球引力分布不均(因为密度不同等原因),大地水准面是一个不规则的光滑曲面。虽然不规则,但是可以近似地表示为一个椭球体,这个椭球体被 称为参考椭球体(Reference ellipsoid)。大地水准面相对于参考椭球体的高度被称为 Undulation of the geoid 。这个波动并不是非常大,最高在冰岛为85m,最低在印度南部为 −106 m,一共不到200m。下图来自维基百科,表示 EGM96 geoid 下不同地区的 Undulation。 ...

大型互联网公司分布式ID方案总结

ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID比较合适,但是随着公司的业务发展,数据量将越来越大,需要对数据进行分表,而分表后,每个表中的数据都会按自己的节奏进行自增,很有可能出现ID冲突。这时就需要一个单独的机制来负责生成唯一ID,生成出来的ID也可以叫做分布式ID,或全局ID。下面来分析各个生成分布式ID的机制。 ...

依赖倒置原则(DIP)、控制反转(IoC)、依赖注入(DI)(C#)

理解: 依赖倒置原则(DIP)主程序要依赖于抽象接口,不要依赖于具体实现。高层模块不应该依赖底层模块,两个都应该以来抽象。抽象不应该依赖细节,细节应该依赖抽象。(具体看我上一篇贴子) 依赖倒置原则是六大设计原则中的一种,它的大致意思是所有模块都应该依赖于抽象,而不是直接依赖于另一个模块。依赖倒置原则仅仅只是一个原则而已,它只是告诉了你程序应该要变成什么样子(模块之间依赖抽象),而并没有具体告诉你应该怎么做。就像是在学校,老师告诉你教室要干净,不要有垃圾,而具体打扫垃圾的动作老师却并没有告诉你,你可以选择用扫把打扫,也可以选择用手捡,但是最终教室要干净(当然,你也可以不遵守)。 ...

javascript简单实现深浅拷贝(附带详细讲解)

深浅拷贝知识在我们的日常开发中还算是用的比较多,但是之前的状态一直都是只曾听闻,未曾使用(其实用了只是自己没有意识到),所以今天来跟大家聊一聊js的深浅拷贝;   首先我们来了解一下javascript的数据类型,在ES5版本的js中我们的javascript一共有6种数据类型,分别是:   Number(数值型)、String(字符串)、Boolean(布尔型)、Object(对象,object和array都属于Object类型)、null、undefined   我们日常使用的javascript深浅拷贝主要是面向Object引用类型进行拷贝; ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程