编程中的一些哲理性思考

1.有利必有弊,有得必有失。

情景1:StringBuilder与StringBuffer

其中StringBuilder不是线程同步的,所以它会出现多线程安全问题;相反的StringBuffer是线程同步

的,不会出现线程安全的问题,它是它需要判断锁,所以它的效率要比StringBuilder低。所以一般没

有涉及到线程安全问题,会优先采用StringBuilder类。

情景2:Http与Https协议

Https是比Http更为安全的协议,就是在HTTP+SSL协议,https之所以安全是因为会对传输的数据进行

加密和解密,当然这是以损耗传输效率为代价的。

像一些银行的网站会采用Https协议,一般不太注重安全的地方能用http就尽量不要用https协议。

时间: 2024-08-08 13:05:26

编程中的一些哲理性思考的相关文章

Python编程中自定义Lambda函数的使用场景

Python 中定义函数有两种方法,一种是用常规方式 def 定义,函数要指定名字,第二种是用 lambda 定义,不需要指定名字,称为 Lambda 函数. Lambda 函数又称匿名函数,匿名函数就是没有名字的函数,函数没有名字也行?当然可以啦.有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没必要非给它取个名字不可. 好比电影里面的群众演员,往往他们的戏份很少,最多是衬托主演,跑跑龙套,他们需要名字吗?不需要,因为他们仅仅只是临时出镜,下次可能就用不着了,所以犯不着费心思给他们每个

.net 异步编程async & await关键字的思考

C# 5.0引入了两个关键字 async和await,这两个关键字在很大程度上帮助我们简化了异步编程的实现代码,而且TPL中的task与async和await有很大的关系 思考了一下异步编程中的async & await关键字,对两个关键字尤其是await关键字一直很迷糊,因此深入思考了一下.首先借助的示例是:[你必须知道的异步编程]C# 5.0 新特性--Async和Await使异步编程更简单这是博客园一个大牛写的,自己也一直关注这个大神,不得不说,博客园大神很多,而且氛围也很好.我引入了其中

关于高性能网络编程的一些总结与思考

从IO说起 一直以来我很欣赏Google I/O大会,一方面是由于一些新技术与新产品的介绍让人兴奋,更重要的是我太爱这个名字了^_^,我觉得正好符合了我对整个互联网技术的浅薄思考与认识.I/O系统就是整个互联网的关键接口,整个互联网的底层就是I/O系统织成的抽象意义上的net,建立在物理线路之上.而网络编程显然是合理创造与利用I/O的重要工具.而以太网的TCP/UDP则在通常的网络编程中占据了核心的地位.本文主要基于Linux平台,其他如Windows NT以及一些Unix衍生版都提供了对应的解

编程中最没用的东西是源代码,最有用的东西是算法和数据结构(转载)

重要的不是你用什么开发,而是你在开发什么. 程序=算法+数据结构 过程=对象+属性+方法+事件 程序员的秘诀是:编程.编程.再编程. 编程的秘诀是:思索.思索.再思索. 自由固不是钱所能买到的,但能够为编程而卖掉. 编程为了生活,生活为了编程. 不要认为编程是一项任务,其实是一次让人羡慕的机会! 编程之乐何处寻,数点梅花天地心. 假如编程易懂得,那么程序员就不会热情地写出注释,也不会有得到编程的快乐. 编程中最没用的东西是源代码,最有用的东西是算法和数据结构. 编程之久除了算法和数据结构,什么也

链接脚本在编程中的高级运用之二——执行时库和C++特性支持

我们在链接脚本在编程中的高级运用之中的一个可变长数组中已经讲述了编译链接的原理,并且以uboot命令为例具体介绍链接脚本怎样实现可变长数组. 本章在前者的基础上继续讲述链接脚本在执行时库中的高级应用技巧.以及编译器怎样支持类对象的构造和析构函数.本章的应用原则上类似于可变长数组,但本章更加側重讲述执行时库的实现原理,其不仅通过链接脚本的section来实现可变长数组去支持随意多类对象的构造函数和析构函数,并且还支持特定函数体的"可变长". 一.执行时库和类对象的构造.析构函数 非常多程

链接脚本在编程中的高级运用之二——运行时库和C++特性支持

我们在链接脚本在编程中的高级运用之一可变长数组中已经讲述了编译链接的原理,并且以uboot命令为例详细介绍链接脚本如何实现可变长数组.本章在前者的基础上继续讲述链接脚本在运行时库中的高级应用技巧,以及编译器如何支持类对象的构造和析构函数.本章的应用原则上类似于可变长数组,但本章更加侧重讲述运行时库的实现原理,其不仅通过链接脚本的section来实现可变长数组去支持任意多类对象的构造函数和析构函数,而且还支持特定函数体的"可变长". 一.运行时库和类对象的构造.析构函数 很多程序员以为程

(转)轻松掌握shell编程中数组的常见用法及示例

缘起:在老男孩进行linux培训shell编程教学中,发现不少水平不错的网友及同学对数组仍然很迷糊,下面就给大家分享下数组的用法小例子,希望能给大家一点帮助.其实SHELL的数组很简单,好用.我们学习都应该遵循简单.易用的原则. shell编程中数组的简单用法及示例 新版本的Bash支持一维数组. 数组元素可以使用符号variable[xx]等方式来初始化. 另外, 脚本可以使用declare -a variable语句来指定一个数组等.要引用一个数组元素(也就是取值), 可以使用大括号, 访问

在编程中为所欲为[圣诞版]

众所周知,在Java中final String中的值是一成不变的.大家都知道String的+(拼接)运算会丢弃内存引用并在内存中重新开拓地址,事实上也确实如此.但final的变量真的是一成不变的吗?谨以此文打开程序员思路,跳出定式思维,希望本文会给你的程序员生涯带来新的思考. 一个简单的例子 这个例子很久远,早有前辈做过,但并不是所有的程序员都接触过.通常喜欢"猎奇"的程序员对此不会陌生. import java.lang.reflect.Field; public class Cha

作为一个程序员编程中经常碰到且觉得难的事是什么?

作为一个程序员编程中经常碰到且觉得难的事是什么?有人说,感觉最难的是 trade-off:也有人说,给函数和变量起一个不用写注释的名字:架构师说,预测需求的变化比较难:一线码农说,写出可被长期维护并持续产生价值的代码是最难的.你觉得编程中经常碰到且觉得难的事是什么? 比如用新技术做项目,编写到80%-90%左右,发现了更优的方案,然后在重构和继续之间取舍......变量命名难:编码进入超凡状态时被打断 ? 还是双方对接,涉及到加解密算法,对方又不给你提供明确说明的,比如RSA吧,虽然都叫RSA,