论全世界所有程序员都会犯的错误-Java基础-Java-编程开发

库存优化技术提升电商效率 第一部分:库存优化技术基础 第1章:库存优化的基本概念 库存优化是现代电商运营中至关重要的一个环节。简单来说,库存优化指的是通过一系列的策略和技术手段,使得库存管理更加高效、准确,从而降低运营成本,提高销售额。 1.1 库存优化的定义与重要性 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

当年,某国际巨星的“龙种”曝光,众人指责他对不起娇妻,逼得他出面召开记者会,向世人自白他犯了“全世界所有男人都会犯的错误”。从来没犯过这种错误的我,也因此常常认为自己不是个男人。

虽然没犯过“全世界所有男人都会犯的错误”,但是我倒是曾经犯了“全世界所有程序员都会犯的错误”。不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是:太依赖编译器,却不知道编译器做了哪些事。

一般来说,越高阶的程序语言,会提供越多语法上的便利,以方便程序撰写,这就俗称为syntactic sugar,我称其为“语法上的甜头”。虽说是甜头,但是如果你未能了解该语法的实质内涵,很可能会未尝甜头,却吃尽苦头。

不久前,我收到一个电子邮件,读者列出下面的Java程序,向我求救。看过这个程序之后,我确定这又是一个“全世界所有程序员都会犯的错误”。

程序1

class Singleton

{

private static Singleton

obj = new Singleton();

public static int counter1;

public static int counter2 = 0;

private Singleton() {

counter1 ;

counter2 ;

}

public static Singleton getInstance()

{

return obj;

}

}

程序2

public class MyMain {

public static void main(String[] args) {

Singleton obj = Singleton.getInstance();

System.out.println("obj.counter1==" obj.counter1);

System.out.println("obj.counter2==" obj.counter2);

}

}

执行结果是:

obj.counter1==1
obj.counter2==0

你有没有被此结果吓一跳?乍看程序代码,你很可能会认为counter1和counter2的值一定 会相等,但执行结果显然不是如此。其实,程序1被编译后的程序应该等同于下面的程序3 :

class Singleton

{

private static Singleton obj;

public static int counter1;

public static int counter2;

static

{

// 这就是class constructor

// 在进入此class constructor之前,class已经被JVM

// 配置好内存,所有的static field都会被先设定为0,

// 所以此时counter1和counter2都已经是0,

且singleton为null

obj = new Singleton();

// 问题皆由此行程序产生

// counter1不会在此被设定为0

counter2 = 0;

// counter2再被设定一次0(其实是多此一举)

}

private Singleton()

{

// 这是instance constructor

counter1 ;

counter2 ;

}

public static Singleton getInstance()

{

return obj;

}

[1] [2]

深入详解DICOM医学影像定位线相关知识:理解定位线的概念、定位线的作用以及定位线显示和计算原理 阅读详情

相关推荐

STM32控制舵机SG-5010转动,HAL库

首先设置时钟为72Mhz,预分频系数为72-1,自动重装载计数器的值为5000-1,这样的话就可以得到一个5ms的脉冲宽度,5000的计数值可以让舵机的旋转角度变得更加易控且相对精准,计算旋转角度的时候也可以更加精确。所以我们5ms脉宽,period是5000脉宽-------------角度----------pulse0.5ms-------------0度----------500;1.0ms------------45度---------1000;

qq_73783264的博客 1294

论全世界所有程序员都会犯的错误

我曾经犯了“全世界所有程序员都会犯的错误”。不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是:太依赖编译器,却不知道编译器做了哪些事。 一般来说,越高阶的程序语言,会提供越多语法上的便利,以方便程序撰写,这就俗称为syntactic sugar,我称其为“语法上的甜头”。虽说是甜头,但是如果你未能了解该语法的实质内涵,很可能会未尝甜头,却吃尽苦头。 不久前,我收到一个电子邮件,读者列出下面的Java程序,向我求救。看过这个程序之后,我确定这又是一个“全世界所有程序员都会犯的错误”。 为

编程领域的博客 138

稚晖君Dummy机械臂CAN总线控制详解:从代码到实战(附常见问题排查)

本文深入解析了稚晖君Dummy机械臂的CAN总线控制技术,从协议设计到代码实现,详细介绍了CAN总线在机械臂控制中的核心价值、通信协议栈设计、运动控制指令实现及常见问题排查方法。通过实战案例和代码示例,帮助开发者快速掌握机械臂CAN总线控制的关键技术。

uuu88的博客 296

全世界所有程序员都会犯的错误-蔡学镛

全世界所有程序员都会犯的错误-蔡学镛 当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记者会,向世人自白他犯了「全世界所有男人都会犯的错误」。从来没犯过这种错误的我,也因此常常认为自己不是个男人。虽然没犯过「全世界所有男人都会犯的错误」,但是我倒是曾经犯了「全世界所有程序员都会犯的错误」。不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是:太依赖编...

weixin_30851409的博客 146

SAP PS项目结算实操:从CJ20N到CJ88,手把手搞定项目成本结转与凭证生成

本文详细解析SAP PS项目结算全流程,从CJ20N到CJ88的操作要点,涵盖成本归集、结算规则配置、结果分析及凭证生成等关键环节。特别针对FICO模块中的项目凭证流转问题提供实战解决方案,帮助财务人员规避常见配置错误,提升项目结算效率与准确性。

weixin_26833503的博客 820

在边缘部署实时视觉应用程序

克隆代码库后,压缩源文件夹的内容,并将生成的存档文件上传到上一节中创建的 S3 存储桶中。在本教程中,我们将使用 AWS Greengrass,因为它支持大多数 Windows 和 Linux 设备,包括我们的目标 Jetson AGX Xavier。此外,模型还可以量化到更低的精度,从而加快推理速度,但对于较大的模型,此过程通常较长(约 45 分钟)。本例中的脚本只是启动一个 Bash 环境,切换到解压后的构件目录,最后使用所需的命令行参数运行 Deepstream 应用。每个模型类型都有其独有的格式。

2501_91623519的博客 1302

蔡学镛专栏:全世界所有程序员都会犯的错误

当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记者会,向世人自白他犯了「全世界所有男人都会犯的错误」。从来没犯过这种错误的我,也因此常常认为自己不是个男人。虽然没犯过「全世界所有男人都会犯的错误」,但是我倒是曾经犯了「全世界所有程序员都会犯的错误」。不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是:太依赖编译器,却不知道编译器做了哪些事。一般来说,

bruce的专栏 1561

利用python求解规划问题

利用python中的cvxpy,sympy,scipy这三个库进行规划问题求解,本文中的例题均来自司守奎老师的python数学建模算法与应用

dashbaani的博客 1万+

java全世界禁用,全世界所有程序员都会犯的错误_java认证

当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记者会,向世人自白他犯了「全世界所有男人都会犯的错误」。从来没犯过这种错误的我,也因此常常认为自己不是个男人。虽然没犯过「全世界所有男人都会犯的错误」,但是我倒是曾经犯了「全世界所有程序员都会犯的错误」。不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是:太依赖编译器,却不知道编译器做了哪些事。一般来说,越高阶的...

weixin_31063029的博客 342

Opencv相机校准之棋盘格标定

Reference: https://yq.aliyun.com/articles/62472

y459541195的博客 3万+

PX4从放弃到精通(十九):串口驱动

文章目录前言一、创建进程二、编写驱动 前言 硬件: PIXHAWK4 USB转串口模块 软件: Ubuntu18.04 PX4 1.11.3固件 QGC地面站 串口助手 一、创建进程 参考:https://mbot1.blog.youkuaiyun.com/article/details/122587617 二、编写驱动 .........

超维空间科技的博客 4601

全世界所有程序员都会犯的错误

当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记 者会,向世人自白他犯了「全世界所有男人都会犯的错误」。从来没犯过这种错误的我, 也因此常常认为自己不是个男人。  虽然没犯过「全世界所有男人都会犯的错误」,但是我倒是曾经犯了「全世界所有程序员 都会犯的错误」。不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是: 太依赖编译器,却不知道编译器做了哪些事。  一

键者天行 6644

学Simulink--进阶电机控制场景实例:基于Simulink的异步电机定子磁链定向控制(SFOC)仿真

本文详细介绍了基于Simulink的异步电机定子磁链定向控制(SFOC)仿真实现方法。主要内容包括:1) SFOC原理分析,突出其对转子参数不敏感的优势;2) 工业风机驱动系统的完整建模流程,涵盖主电路搭建、坐标变换、磁链观测器设计等关键步骤;3) 核心模块代码实现,包括电压模型磁链观测器和双闭环PI控制器;4) 仿真结果验证了SFOC在转速响应(0.2s)、转矩恢复(0.15s)和参数鲁棒性(转子电阻变化50%时转速波动<2%)方面的优异性能。本文为工程师提供了实用的SFOC系统开发指南,特别适用于

amy_mhd的博客 117

惊呆了!Java程序员最常犯的错竟然是这10个

和绝大多数的程序员一样,我也非常的宅。周末最奢侈的享受就是逛一逛技术型网站,比如说 programcreek,这个小网站上有一些非常有意思的主题。比如说:Java 程序员最常犯的错竟然是这 10 个,像这类令人好奇心想害死猫的主题,非常值得扒出来给大家分享一下。 PS:别问我“为什么标题要加上‘惊呆了’?”问了答案就只有一个——吓唬人——总得勾起大家的阅读兴趣嘛(我容易吗我)。 01、把 Arr...

沉默王二 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[转载]全世界所有程序员都会犯的错误-蔡学镛

当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记者会,向世人自白他犯了「全世界所有男人都会犯的错误」。从来没犯过这种错误的我,也因此常常认为自己不是个男人。虽然没犯过「全世界所有男人都会犯的错误」,但是我倒是曾经犯了「全世界所有程序员都会犯的错误」。不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是:太依赖编译器,却不知道编译器做了哪些事。一般来说,越高阶的

NEMO的专栏 964

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

全世界所有程序员都会犯的错误及自己的一点补充说明

全世界所有程序员都会犯的错误    2004 - 05 - 15missair 点击 : 49    全世界所有程序员都会犯的错误    全世界所有程序员都会犯的错误    发布日期:2003 - 12 - 29作者:蔡学镛    当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记者会,向世人自白他犯了「全世界所有男人都会犯的错误」。    从来没犯过这种错误的

IT人的经济生活 1142

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

[引用]全世界所有程序员都会犯的错误

标  题: 蔡学镛专栏:全世界所有程序员都会犯的错误发信站: 飘渺水云间 (Sun Mar 16 15:35:04 2003), 转信当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记者会,向世人自白他犯了「全世界所有男人都会犯的错误」。从来没犯过这种错误的我,也因此常常认为自己不是个男人。虽然没犯过「全世界所有男人都会犯的错误」,但是我倒是曾经犯了「全世界所有

风流浪子的专栏 704

java程序员最头疼的十大问题_Java程序员最常犯的错误盘点之Top 10

原标题:Java程序员最常犯的错误盘点之Top 10人非圣贤,孰能无过。都说Java语言是一门简单的编程语言,基于C++演化而来,剔除了很多C++中的复杂特性,但这并不能保证Java程序员不会犯错。那么对于广大的Java程序员来说,它们最常犯的10个错误是什么呢?本文通过总结出Java程序员最常犯的10大错误,可以有效地帮组Java后来者少走弯路,少加班,并写出更健壮的应用程序。1. 数组转Arr...

weixin_29504571的博客 1937

全世界所有程序员都会犯的错误(转贴)

当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记 者会,向世人自白他犯了「全世界所有男人都会犯的错误」。从来没犯过这种错误的我, 也因此常常认为自己不是个男人。  虽然没犯过「全世界所有男人都会犯的错误」,但是我倒是曾经犯了「全世界所有程序员 都会犯的错误」。不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是: 太依赖编译器,却不知道编译器做了哪些事。  一

网络猎狐犬 1590
上一篇: 为Java应用程序添加退出事件响应-Java基础-Java-编程开发
下一篇: java
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值