自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

原创 Unity面试(一)

1.举例Unity的四个特殊文件夹,分别是干什么用的?StreamingAssets:文件夹中的文件目录结构和文件会被原封不动的打包进安装包中Resources:需要动态加载的资源存放的位置Editors:编辑器,特殊编辑工具存放的位置Plugins:插件存放的位置拓展:工程的目录结构Assets: 工程所欲资源的存放目录Library:Unity自动生成的中间文件目录Logs:Unity自动生成的日志文件目录Packages:Unity的包管理器相关文件存放目.

2021-08-08 23:35:40 820

转载 【转载】快速掌握一个语言最常用的50%

现在的开发工作要求我们能够快速掌握一门语言。一般来说应对这种挑战有两种态度:其一,粗粗看看语法,就撸起袖子开干,边查Google边学习;其二是花很多时间完整地把整个语言学习一遍,做到胸有成竹,然后再开始做实际工作。然而这两种方法都有弊病。第二种方法的问题当然很明显,不仅浪费了时间,偏离了目标,而且学习效率不高。因为没有实际问题驱动的语言学习通常是不牢固不深入的。有的人学着学着成了语言专家,反而忘了

2017-10-30 14:58:23 309

转载 【转载】数据结构和算法学习之路

这篇文章讲了什么?我这些年学习数据结构和算法的总结。一些不错的算法书籍和教程。算法的重要性。初学第一次接触数据结构是在大二下学期的数据结构课程。然而这门课程并没有让我入门——当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾——反正最后考试划个重点也能过,于是这门整个计算机专业本科最重要的课程就被傻逼的我直接忽略过去了。直到大三我才反应过来以

2017-10-30 13:55:21 473

原创 Sublime Text Windows系统快捷键

Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格式化Ctrl+D:选择单词,重复可增加选择下一个相同的单词Ctrl+L:选择行,重复可依次增加选择下一行Ctrl+Shift+L:选择多行Ctrl+Shift+En

2017-09-12 14:18:12 196

原创 1.程序员为什么需要了解操作系统

对于程序员来说,程序在运行的环境中会有一个“无形的手”在无时无刻不影响着程序的运行,也许你对此浑然不知,这个“无形的手”就是操作系统。操作系统从本质上讲也是一个普通的程序,和我们平时写的程序没什么本质上的不同,它的特殊之处主要体现在用途上。操作系统的用途不是用来浏览网页,玩游戏,播放音乐,聊天的,这些都是特定的应用程序来完成的,比如浏览器,视频播放器,音乐播放器等,这些程序都有特定的用途并为计算机用户带来丰富多彩的体验,那么操作系统又是一个什么样的程序...

2022-05-02 10:24:43 778

原创 10-多用继承少用组合

为什么不推荐使用继承?继承是面向对象的四大特性之一,用来表示类之间的 is-a 关系,可以解决代码复用的问题。虽然继承有诸多作用,但继承层次过深、过复杂,也会影响到代码的可维护性。类的继承层次会越来越深、继承关系会越来越复杂。而这种层次很深、很复杂的继承关系,一方面,会导致代码的可读性变差。因为我们要搞清楚某个类具有哪些方法、属性,必须阅读父类的代码、父类的父类的代码……一直追溯到最顶层父类的代码。另一方面,这也破坏了类的封装特性,将父类的实现细节暴露给了子类。子类的实现...

2021-10-27 22:19:37 156

翻译 09-基于接口实现编程

基于接口而非实现编程。这个原则非常重要,是一种非常有效的提高代码质量的手段。“基于接口而非实现编程”这条原则中的“接口”,可以理解为编程语言中的接口或者抽象类。应用这条原则,可以将接口和实现相分离,封装不稳定的实现,暴露稳定的接口。上游系统面向接口而非实现编程,不依赖不稳定的实现细节,这样当实现发生变化的时候,上游系统的代码基本上不需要做改动,以此来降低耦合性,提高扩展性。实际上,“基于接口而非实现编程”这条原则的另一个表述方式,是“基于抽象而非实现编程”。后者的表述方式...

2021-10-24 23:35:10 218

原创 08-接口和抽象类的区别

在面向对象编程中,抽象类和接口是两个经常被用到的语法概念,是面向对象四大特性,以及很多设计模式、设计思想、设计原则编程实现的基础。比如,可以使用接口来实现面向对象的抽象特性、多态特性和基于接口而非实现的设计原则,使用抽象类来实现面向对象的继承特性和模板设计模式等等。接口和抽象类的区别是什么?什么时候用接口?什么时候用抽象类?抽象类和接口存在的意义是什么?能解决哪些编程问题?什么是抽象类和接口?区别在哪里? 抽象类:1....

2021-10-24 23:21:01 89

原创 07-面向对象与面向过程的区别

哪些代码设计看似是面向对象,实际是面向过程的?1. 滥用 getter、setter 方法它违反了面向对象编程的封装特性,相当于将面向对象编程风格退化成了面向过程编程风格。在设计实现类的时候,除非真的需要,否则,尽量不要给属性定义 setter 方法。除此之外,尽管 getter 方法相对 setter 方法要安全些,但是如果返回的是集合容器(比如例子中的 List 容器),也要防范集合内部数据被修改的危险。2. 滥用全局变量和全局...

2021-10-24 19:47:08 210

原创 06-面向对象和面向过程的区别

什么是面向过程编程与面向过程编程语言?面向过程编程也是一种编程范式或编程风格。它以过程(可以理解为方法、函数、操作)作为组织代码的基本单元,以数据(可以理解为成员变量、属性)与方法相分离为最主要的特点。面向过程风格是一种流程化的编程风格,通过拼接一组顺序执行的方法来操作数据完成一项功能。面向过程编程语言首先是一种编程语言。它最大的特点是不支持类和对象两个语法概念,不支持丰富的面向对象编程特性(比如继承、多态、封装),仅支持面向过程编程。...

2021-10-24 19:27:56 460

原创 05-面向对象的四大特性能解决哪些编程问题

封装 封装也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部仅能通过

2021-10-24 18:59:07 248

原创 04-面向对象

什么是面向对象编程和面向对象编程语言? 面向对象编程的英文缩写是OOP,全称是ObjectOrientedProgramming。对应的,面向对象便曾语言的英文缩写是OOPL,全称是ObjectOrientedProgrammingLanguage。 面向对象编程有两个非常重要、非常基础的概念,那就是类(class)和对象(object)。这两个概念最早出现在1960年,在Simula这种编程语言中第一次使用。而面向对象编程这个概念第一次被使用是...

2021-10-23 19:31:13 114

翻译 06-交换机与VLAN

拓扑结构是怎么形成的 我们常见到的办公室大多数是一排排的桌子,每个桌子都有网口,一排十几个作为就有十几个网口,一个楼层就会有几十个甚至上百个网口。如果算上所有楼层,这个场景自然比你宿舍里的复杂的多了。 具体哪里复杂呢,首先,这个时候一个交换机肯定是不够用的,需要多态交换机,交换机之间连接起来,就形成一个稍复杂的拓扑结构。 首先来看两台交换机的情形,两台交换机连接着三个局域网,每个局域网上都有多台机器,如果机器1只知道机器4的IP地址,当它...

2021-09-22 23:29:43 105

原创 05-从物理层到MAC层

第一层(物理层) 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。主要任务是确定与传输媒体接口有关的一些特性,定义标准。 用两条网线将电脑连接起来,就组成了一个最小的局域网。集线器,这种设备有多个口,可以将多台电脑连接起来,但是和交换机不同,集线器没有大脑,完全在物理层工作,它会将自己收到的每一个字节,都复制到其他端口上去。 第二层(数据链路层)...

2021-09-21 12:04:33 169

翻译 04-DHCP动态主机配置协议

动态主机配置协议 简称DHCP,有了这个协议,网络管理员只需要配置一段共享的IP地址,每一台新接入的机器都通过DHCP协议,来这个共享地址里申请,然后自动配置就可以了,等人走了,或者用完了,还回去,这样其他机器也能用。 如果数据中心里面的服务器,IP一旦配置好,基本不会变,这就相当于买房自己装修。DHCP的方式相当于租房。你不用装修,都是帮你配置好的。你暂时用一下,用完退租就可以了。 DHCP的工作方式 当一台机器新加入...

2021-09-12 23:42:10 63

原创 03-IP地址和MAC地址

IP地址 IP地址是一个网卡在网络世界的通讯地址,相当于我们现实世界的门牌号码。既然是门牌号码,不能大家都一样,不然就会起冲突。比如说,假如大家都叫六单元1001号,那快递就找不到地方了。所以,有时候电脑弹出网络地址冲突,出现上不去网的情况,多半是IP地址冲突了。10.100.122.2就是一个IP地址,这个地址被点分隔成四个部分,每个部分8个bit,所以IP地址总共是32位。这样产生的IP地址的数量很快就不够用了,于是就有了IPv6,有...

2021-09-12 21:52:57 268

翻译 02-网络为什么要分层

当你听到什么二层设备、三层设备、四层LB和七层LB中层的时候,是否一头雾水,不知道这些所谓的层,对应的各种协议具体要做什么工作呢? 在教科书中经常会有一个对网络为什么要分层有一个不是十分恰当的比喻:因为不同的层次之间有不同的沟通方式,这个叫作协议。例如一家公司也是分层次的,分总经理、经理、组长、员工。总经理之间有他们的沟通方式,经理和经理之间也有沟通方式,同理组长和员工也有自己的共同方式。 那么第一个问题来了,经理在握手的时候,员工在干什么呢?很多人听过T...

2021-09-05 23:50:33 298

原创 01-为什么要学习网络协议

协议三要素 语法,就是一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。 语义,就是一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义。 顺序,就是先干什么,后干什么。例如,可以先加上某个数值,再减去某个数值 学会了计算机语言,就能够交给一台计算机完成你的工作,但是,只交给一台机器做什么是不够的,还需要学会交给一大片机器做什么,这就需要网络协议。只有通过网络协议,才能使一大片机器相互协作...

2021-09-02 22:51:07 708

原创 Unity面试(二)

物理系统1.Unity中的碰撞器和触发器的区别?碰撞器是触发器的载体,触发器只是碰撞器身上的一个属性,当is Trigger =false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数;当is Trigger = true时,碰撞器被物理引擎忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。2.在物体反生碰撞的整个过程中,有几个阶段,分别列出对应的函数三个阶段OnCollisonEnter.

2021-08-22 20:06:25 84

原创 1-Unity是什么

Unity:世界领先的实时创作平台 什么是引擎? 汽车的引擎我们都熟悉,就是驱动汽车往前跑的核心部件,汽车能跑多快,根本上取决于它的引擎有多强。 那么Unity给自己的定义里的开发引擎是什么含义呢?简单来说,开发引擎是一个功能丰富的软件平台,可以让创作者快速高效开发内容。Unity最初是从游戏引擎发展来的,那么游戏引擎的概念是什么呢? 和汽车引擎概念类似,游戏引擎是游戏开发的一个核心部件。引擎可以让你在开发游戏的时候,不...

2021-08-15 19:09:45 2299 1

原创 06-域名系统

IP协议的职责是网际互连,它在MAC层之上,使用IP地址把MAC编号转换成了四位数字,这就对物理网卡的MAC地址做了一层抽象。例如,分为A、B、C、D、E五种类型,公有地址和私有地址,掩码子网分割等。只要每个小网络在IP地址这个概念上达成一致,不管它在MAC层有多大的差异,都可以接入TCP/IP协议栈,最终汇合进整个网络。 但接入互联网的计算机越来越多,IP地址的缺点也就暴露出来了,最主要的是它对人不友好,虽然比MAC的16进制数要好一点,但还是难于记忆和输入。怎么解决这个...

2021-08-15 13:00:05 125

原创 05-网络的四层协议和七层协议

TCP/IP网络分层模型TCP/IP的设计创造性的提出了分层的概念,把复杂的网络通信划分出多个层次,再为每一个层次分配不同的职责,层次内只专心做好自己的事情,用分而治之的思想把一个大麻烦拆分成了数个小麻烦,从而解决了网络的难题。TCP/IP协议总共有四层,就想搭积木一样,每一层需要下层的支持,同时又支撑着上层,任何一层被抽掉都可能会导致整个协议栈坍塌。 第一层叫做链接层(linkelayer),负责以太网、WiFi这样的底层网络上发送原始数据包,工...

2021-08-08 22:46:55 2637

原创 04-HTTP相关的各种概念

TCP/IP TCP/IP协议是目前网络世界事实上的标准通信协议,即使我们没有用过也一定听说过它。 TCP/IP协议实际上是一系列网络通信协议的统称,其中最核心的两个协议是TCP和IP、其他的还有UDP、ICMP、ARP等等,共同构成了一个复杂但又层次的协议栈。这个协议栈有四层,最上层是应用层,最下层是链接层,TCP和IP则在中间:TCP属于传输层,IP属于网际层。 IP协议是InternetProtocol的缩写,主要目的是解决寻...

2021-08-01 00:11:10 91

原创 03-与HTTP相关的各种概念

与HTTP相关的各种应用,互联网、浏览器、Web服务器常见的重要概念。 网络世界 我们已经习惯了现在的网络生活,甚至可能会下意识地认为网络世界就应该是这个样子的:“一张平坦而且一望无际的的巨大网络,每一台电脑就是网络上的一个节点,均匀的点缀在这张网上”。这样的理解既对,又不对。从抽象的、虚拟的层面来看,网络世界确实是这样的,我们可以从一个节点毫无障碍的访问到另一个节点。但是现实的网络世界却比这个抽象的模型要复杂的多。实际的互联网是由许许多多个规模略小的网络...

2021-07-29 22:36:37 88

翻译 02-HTTP是什么

HTTP就是超文本传输协议,也就是Hyper Text Transfer Protocol的缩写 超文本传输协议可以拆为三个部分,分别是“超文本”,“传输”和“协议”,理解了这三个词,也就明白了什么是HTTP。 首先HTTP是一个协议。不过,协议又是什么呢? 其实协议并不仅限于计算机世界,现实生活中也随处可见,例如毕业时签订的“三方协议”,租房子的时候签订的“租房协议”,公司入职时签订的“保密协议”、“竞业协议”,工作中使用的各种软...

2021-07-25 22:59:26 387

原创 01-HTTP的介绍

HTTP协议在我们的生活中随处可见,打开手机或者电脑,只要你能上网,无论是用IPhone、Android手机还是Windows、Mac电脑,无论是浏览器还是APP,无论是是看视频还是玩游戏,后面总是有HTTP在默默的为你服务。 那么在享受如此便捷的网络生活时,有没有想过,HTTP协议是怎么来的呢?它最开始又是什么样子的呢?它是如何一步步的发展到今天,几乎统治了整个互联网的呢? 20世纪60年代,美国国防部高等研究计划署(ARPA)建立了ARPA网,它有四个...

2021-07-25 13:44:19 116

原创 如何有效的减少程序Bug

什么是优秀的代码?简而言之,经济、规范、安全的代码。在平时的工作中,我们要朝着这个方向努力,时常站在团队、流程、个人能力的角度去思考优秀的代码。 提高程序员的修养,是一个永不过时的课题。从别人的失败和自己的失败中学习、积累、提高,是一个程序员成长的必修课。 第一:从代码风格的角度来避免错误,正确的使用代码缩进,大括号。 第二:利用编译器的警告,可以帮助我们清除很多错误。 第三:回归测试,如果有代码变更,我们可以用回归测试...

2021-07-04 12:07:57 650

原创 条件运算符的使用,什么是好的代码

写出优秀的代码是每个程序员的毕生追求,毕竟写代码本身是个技术活,代码的好坏,其实也是工艺的好坏。作为一个技术类的工种,没有理由不去思考如何写出优秀的,让人惊叹的代码。 那什么样的代码才是优秀的代码呢?对于这个问题,每个人都会有自己的答案。 对于条件运算符的使用,有很多的相关争论,自己写代码的时候也在想到底该不该使用条件运算符,或者在什么样的情况下使用。 条件运算符的使用,可以使代码看起来简短、整洁、干净,而且如果能把代码以最少的行数,最简...

2021-07-04 11:36:36 116

翻译 面向对象七大设计原则

每天都在和面向对象打交道,但是我们在应用面向对象的时候感觉自己对面向对象的技术应用是否合理?理解的是否到位?应用是否到位?应用时机是否恰到好处?是否符合软件的发展趋势? 面向对象的应用也有面向对象的原则,一个程序员的编程素质从一个小例子几十行代码就可以展现出来。面向对象编程是面向对象的基础的基础,遵循面向对象的原则编程,编程水平才会大幅度的提高!面向对象原则综述一、开...

2019-05-04 12:49:11 1912

转载 明星软件工程师的10种特质

1. 热爱编程编程是一种为了满足兴趣而心甘情愿去做的劳动(Programming is a labor of love)。和其他任何职业一样,唯有真正的热情,才能完成真正的伟大事情。这里有个误解,认为编写代码是机械化并纯科学性的。事实上,最优秀的软件工程 师是工匠,他们能把能量、独创性和创造力融入到每一行代码中。伟大的工程师知道何时该把代码雕琢至完美,知道何时把大型系统像拼图一样组装到一块。热爱...

2019-05-04 11:43:18 120

转载 编程能力的四种境界

人类心理学研究中的一个基础支撑科目就是分析人的潜意识和意识。 弗洛伊德是最早的一位能够清楚的认定和描述我们的心理活动“领域”的人。 在他这著名的一生的早期,他就指出我们的意识里分“潜意识”,“前意识”,“意识”。如 果我们想能清楚他们分别跟我们的思想、感觉、认知、判断和动机(这这些在我们每天的生活,职业生活中都是关键因素)有什么关联,我们可以把我们自己描述成 一个冰山。 冰山的尖端,唯一能从水...

2019-05-04 11:38:26 160

转载 编程巨星的唯一秘诀

别以为是那些软件开发定律,别以为是开发出那些特殊用途的软件,别以为是软件设计技术本身。只有一条真理决定了一个软件程序员的成功还是失败。由于坚持这个真理,一个资深的程序员能在一天的时间里学会一门新的编程语言,而由于不坚持这条真理,一个初级的程序员用十年时间也只能挣到一份糊口钱、永远是来实现别人的设计、永远不够优秀而得不到晋升的机会。这条真理让你看清了查的程序员和好的程序员的不同之处,好的程序员和伟大...

2019-05-04 11:32:22 119

翻译 责任链设计模式

什么是责任链设计模式 责任链模式是指一个需要多个过程或者角色参与处理,并给予某个约定组成一个链,每个过程或者角色拥有各自职责进行处理。责任链模式有效组织一个过程处理,同时子过程之间职责明确。使用场景(1)在公司OA系统请假审批流程如果请假小于3天只需要项目经历批复如果请假大于3天小于7天需要人事经理批复如果请假大于7天小于15天需要总经理批复(2)公司报销流...

2019-05-01 11:46:05 117

转载 C#计时器的三种实现方法

在原博基础上学习,然后自己重新设计实现了一遍。在.NET中有三种计时器:一、 System.Windows.Forms命名空间下的Timer控件,和所在的Form属于同一个线程。Timer控件只有绑定了Tick事件和设置Enabled属性为True之后才会自动计时,Stop()方法,Start()方法启动计时器重新计时;MyTimer.Enabled = true;  //启动计时器MyTimer...

2018-05-11 11:25:37 21941

翻译 【计算机组成原理】第4章-存储器 思考与练习

本章重点介绍主存储的分类、工作原理、组成方式以及与其他部件(如CPU)的联系。此外还介绍了高速缓冲储存器、磁表面储存器等的基本组成和工作原理。建立起如何用不同的存储器组成具有层次结构的存储系统的概念。...

2018-02-08 11:15:17 695

翻译 【计算机组成原理】第3章-系统总线 思考与练习题

将各部件连接到一组公共信息传输线上,称为总线连接总线是连接多个部件的信息传输线,是各部件共享的传输介质 总线的应用很广泛,从不同角度可以有不同的分类方法,数据传送方式,使用范围,连接部件不同等进行分类 按系统总线传输信息的不同,又可分为三类:数据总线、地址总线和控制总线 总线结构通常分为单总线结构和多总线结构两种

2018-02-07 11:49:02 1665

翻译 【计算机组成原理】第2章-计算机的发展及应用 思考与练习题

微处理器芯片的位数指的是一个机器周期时钟脉冲能处理的字长。随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介2.1-通常,计算机的更新换代以什么为依据? 早期计算机的更新换代主要集中体现在组成计算机

2018-02-05 17:28:52 1469

翻译 【计算机组成原理】第1章 计算机系统概论-思考题与习题

1.1-什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要? 计算机系统是由“硬件”和“软件”两大部分组成 计算机硬件-是指计算机的实体部分,由看得见摸得着的各种电子器件、各类光、电、机设备等实物组成计算机软件-看不见,摸不着,由人们事先编制的具有各类特殊功能的程序组成计算机的性能好坏取决于软硬件的功能总和,因此同等重要1.2-如何理解计算机系统的层次结构?

2018-02-05 14:49:58 3524

翻译 数据结构-树的定义

树的定义树是n个节点的有限集。n=0时,称为空树。在任意一颗非空树中:(1)有且仅有一个特定的称为根的结点;(2)当n>1时,其余结点可分为m个互不相交的有限集,其中每一个集合本身又是一棵树,并且称为根的子树。1.n>0时根结点是唯一的,不可能存在多个根结点2.m>0时,子树的个数没有限制,但它们一定是互不相交的结点的分类:树的结点包含一个数据元素及若干指向其子树的

2018-01-30 15:00:21 286

翻译 【数据结构】- 遍历二叉树

二叉树的遍历原理二叉树的遍历是指从根节点出发, 按照某种次序以此访问二叉树所有节点,使得每个节点被访问一次且仅被访问一次这里有两个关键词:访问和次序二叉树遍历方法1.前序遍历规则是若二叉树为空,则空操作返回,否则先访问根节点,然后前序遍历左子树,再前序遍历右子树                                                  2.

2018-01-17 15:15:25 128

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除