Java,误解为何如此之深

C语言的那些事——函数部分(4) //矩阵的转置函数 /*这个程序本来不难,但是我在刚开始编译的时候总会一些警告: warning C4047: 'function' : 'int (*)[3]' differs in levels of indirection from 'int ' warning C4024: 'Trans_func' : different types for formal and actua 阅读详情

前几天被电话面试,问Java的参数传递方式,我说只有一种方式,就是by value啊,对方纠正我说,基本类型传值,对象类型传引用;呜呼,当时被噎了一下,几秒钟后回过神来,我明白他的意思,也明白我碰上新世纪的新新人类了,但我怕他不明白啊,就说我们还是先把“引用”这个概念定义清楚吧,不要同一个词两人有两个意思,或者举个例子吧,在函数里对String类型的参数赋值是不影响实际参数的啊,于是他也明白我其实也明白,电话面试就算过了

然而还不算完,正式面试的四轮:笔试题,笔试完后与leader谈,谈完后与manager谈,谈完后与VP谈,居然每一轮都有这道题!只不过换成了swap函数的形式,让你说出执行结果;我就纳了闷了,这道题在人们心目中的形象就那么高大?并且甲方答案也似是而非?

Bjarne一直认为是C++的教育害了C++,那么是什么害了Java语言呢?过度的商业宣传!

当然,商业宣传成功的帮助了Java平台,吸引了大量开发者,但对Java语言来说,先听到宣传词后再来学习的初学者,耳中充斥的是“Java取消了指针”,“Java没有内存泄露”,“Java纯面向对象”等宣传用语,先入为主的就接受了表面现象,而没有理解问题的实质

Java取消了指针?看看那个所谓的“引用”为空时抛出的异常吧,看看在Java实现者的眼中这个东西到底是啥吧:NullPointerException!不是我鄙视Sun,它的细节伪装的确实不如MS:.net里对应的异常叫NullReferenceException,虽然也是换汤不换药;作为一种类C语言,我认为对应概念的命名还是一致较好,Java里其实全是指针,你基本无法得到对象本身,只不过这种指针功能受限,不需删除而已

指针的概念被伪装起来,不需要delete了,那么除内存之外的其它资源呢?数数你的程序里有多少个finally就可以了

Java纯面向对象?其实就这句话本身来说也无可厚非,只是它使用了<<箭鱼行动>>里定义的“错误引导”,这句话会使初学者倾向于认为用Java写出来的程序都是面向对象的,从而阻碍了理解真正的面向对象;数数你程序里有多少根据对象类型的switch/if/else就可以了

题外话:

面试时被问道面向对象的三个基本特征,我知道他想听到什么封装继承多态,但实际上传统面向对象的核心特征就是多态,继承只是用来实现多态的一种手段,并非本质特征;C语言没有继承,但照样可以进行OO风格的编程。

 
一、关于Java性能的误解 Java的性能有某种黑魔法之称。部分原因在于Java平台非常复杂,很多情况下问题难以定位。然而在历史上还有一种趋势,人们靠智慧和经验来研究Java性能,而不是靠应用统计和实证推理。在以下内容中,我希望拆穿一些最荒谬的技术神话。 阅读详情

相关推荐

详细介绍pytorch重要的API

Tensor 是 PyTorch 中最基本的数据结构,提供了多种创建和操作张量的函数。Autograd 提供了自动求导功能,可以跟踪 Tensor 上的操作并计算梯度。损失函数用于衡量模型预测值与真实值之间的差异,提供了多种损失函数。是构建神经网络的基础类,提供了定义网络层和前向传播的方法。提供了 GPU 计算的支持,包括设备管理、内存管理等。提供了一些常用的函数式操作,如激活函数、损失函数等。提供了常用的数据集、模型架构和图像转换工具。提供了数据加载和预处理的工具,包括。

hello! 1223

c语言错误2146,c语言编程出错

这是代码#include#includevoidmain(){charx[]={"yes"},y={"no"},z={"verymuch"},a=[20];inti;for(i=0;;i++){printf("doyouloveme?(pleasetypeyesorno)\n");gets(a);if(i>4)printf("玩够没有啊小朋友?!还不关了?!!!\n\n...

weixin_39974932的博客 868

从零到一:手把手教你用YonBuilder for NCC搭建NC Cloud 2021.11开发环境(含避坑指南)

本文详细指导如何使用YonBuilder for NCC搭建NC Cloud 2021.11开发环境,涵盖硬件要求、软件安装、YonBuilder配置及常见故障排除。特别提供避坑指南,帮助开发者快速上手NCC开发,确保环境配置的原子化分解和开发思维的体系化建立。

weixin_42523326的博客 346

error: conflicting types for 【五大错误原因+解决办法】

目录原因一原因二原因三原因四原因五参考资料 原因一 没有函数声明,且函数定义在主函数之后 原因二 头文件的被循环引用,在引用时考虑清楚包含顺序 或者使用 #ifndef CAPITAL_FILENAME #define CAPITAL_FILENAME // main body #endif /* CAPITAL_FILENAME */ 原因三 头文件函数声明和函数定义参数不同,如 头文件中声明 void test(const char* buf),但在定义时写作 void test(char* bu

Xav Pun的博客 5万+

python:numpy分享(保姆级教程)

创建数组:array和ndarray、rand()、randn()、arange()、randint()、uniform()astype()基础函数:ceil()、floor()、rint()、argmax()、argmin()、cumsum()、cumprod()numpy 是数据分析必不可少的第三方库,具有高性能的特点,多用于做数组分析。内置函数:ceil()、floor()、rint()主要用于数组计算,支持多维数组。array和ndarray。比较函数:all、any。去重函数:unique。

sulin123123的博客 1730

避坑指南:Abaqus网格划分中90%用户会遇到的5个质量陷阱(附解决方案)

本文深入剖析Abaqus网格划分中90%用户会遇到的5个典型质量陷阱,包括单元扭曲、扫掠网格失败、尺寸梯度控制等,并提供工程级解决方案。通过Python脚本和虚拟拓扑等技巧,帮助用户提升网格质量,确保有限元分析结果的可靠性,适用于CAE工程师和仿真分析师。

weixin_29243279的博客 99

c语言错误代码c2146怎么修改,求大神看一下,刚学C语言,错误不会改,在线等

该楼层疑似违规已被系统折叠隐藏此楼查看此楼#include"stdio.h"main(){FILE*fp;char str[100],filename[10];int i=0;if((fp=fopen("upper.txt","w"))==NULL){printf(Cannot open file!\n");exit(0);}printf("Enter a string:\n");gets(st...

weixin_35569158的博客 923

​非线性分析-增加位移量可能出现下面错误。虽然求解无法在所有时间点完成,但在某些点上仍能够求解部分结果。请参阅“帮助系统”中的故障排除,以了解更多信息详情。由于受约束,规划求解引擎无法收敛

基于收敛状态拆分载荷步‌:在已收敛的载荷步基础上,将未收敛的关键区域拆分为更细的子步,比如在载荷突变点前设置5~10个子步,逐步加载。替换冲突约束为弱约束‌:若存在约束冲突,将刚性约束替换为弱弹簧约束(刚度设为1e-6~1e-4),既限制刚体位移,又不影响结构的变形自由度,命令流:SPRING, NODE, K, 1e-6。部分区域约束完整,但存在未被约束的刚体自由度,或约束类型与大变形/接触逻辑冲突,比如某部件的位移约束在初始阶段有效,但大变形后约束位置脱离实际受力点,导致求解器在该阶段无法收敛。

qq_15963745的博客 145

java误解问题_Java,误解为何如此之深

前几天被电话面试,问Java的参数传递方式,我说只有一种方式,就是by value啊,对方纠正我说,基本类型传值,对象类型传引用;呜呼,当时被噎了一下,几秒钟后回过神来,我明白他的意思,也明白我碰上新世纪的新新人类了,但我怕他不明白啊,就说我们还是先把“引用”这个概念定义清楚吧,不要同一个词两人有两个意思,或者举个例子吧,在函数里对String类型的参数赋值是不影响实际参数的啊,于是他也明白我其实...

weixin_39519072的博客 93

《MATLAB项目实战》,专栏目录和介绍

MATLAB 是一款强大且广泛应用的数值计算和数据可视化软件工具,它提供了一个高效、简洁的编程环境,使用户能够进行从简单的矩阵运算到复杂的多维数据分析的各种计算任务。无论是在人工智能、计算机视觉、图像处理还是其他领域,MATLAB 都能够提供精准、快速的解决方案,因此成为了全球科研人员、工程师以及数据分析师的得力工具。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 6478

Nerf 训练自有数据

colmap相机位姿转为LLFF格式数据

zfjBIT的专栏 2309

Java clone详解

转载Java clone详解1.Java“指针”   Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能 通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是浅clone与深 clone,认识它们的区别、优点及缺点。

YoungPhoenix的专栏 545

【keil5和STC-ISP】保姆级下载安装教程

点击下载中的产品下载。然后就会看到如下界面:可以看到,提供了针对不同芯片架构的四套独立开发工具。:你使用的51单片机,其核心就是。C51套件里的编译器是专门为这个架构优化的。:如果安装了MDK-Arm,你在创建新项目时将像“AT89C51”这样的51系列芯片型号,无法进行开发。进入如下界面:双击下载 → 双击运行安装 → 同意协议并下一步 → 使用默认安装路径 → 完成安装。

深耕CV 1651

JavaScript 误解如此之深

JavaScript,是世界上最流行的编程语言之一。事实上世界上的每一台个人电脑都安装并在频繁使用至少一个JavaScript解释器。JavaScript的流行完全是由于他在WWW脚本语言领域中的地位决定的。 Despite its popularity, few know that JavaScript is a very nice dynamic object-oriented gen...

weixin_30849403的博客 121

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

关于Java的常见误解

一、前言 最近开始阅读一本叫《Java核心技术卷I》的书,想更加深入的去了解Java这门语言,我在看到第一章的结尾的地方看到了作者写了一些可能不是很了解Java的人关于Java的一些常见的误解,我觉得他写的很好,就想分享出来。 二、Java的常见误解 Java是HTML的扩展 答:Java是一种程序设计语言,HTML是一种描述网页结构的方式。除了用于在网页上放置Javaapplet ...

weixin_42146366的博客 323

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

对JAVA语言的十个常见误解

对JAVA语言的十个常见误解(辽宁 都 健  编译) JAVA 语 言 自 从 应 用 于 Internet, 迅 速 成 为 全 球 热 点。 它 的 平 台 无 关 性 仿 佛 成 为 解 决 互 易 操 作 性 和 可 移 植 性 的 灵 丹 妙 药。 然 而 对 于 JAVA 语 言 的 认 识 仍 有 不 少 误 解。 1.JAVA 是 HTML 的 扩 充

Virtual的专栏 1273

java误解问题_关于Java的10个误解

下面的这些都算是比较高级的问题了,面试中一般也很少问到,因为它们可能会把面试者拒之门外。不过你可以自己找个时间来实践一下。1. System.exit(0)会跳过finally块的执行System.setSecurityManager(newSecurityManager() {@OverridepublicvoidcheckExit(intstatus){thrownewThread...

weixin_33167456的博客 175

1.5 关于 Java 的常见误解

1.5 关于 Java 的常见误解 文章目录1.5 关于 Java 的常见误解1、Java 是 HTML 的扩展2、使用 XML ,所以不需要 Java3、Java 是一种非常容易学习的程序设计语言4、Java 将称为适用于所有平台的通用性编程语言5、Java 只不过是另外一种程序设计语言6、Java 是专用的,应该避免使用7、Java 是解释型的,因此对于关键的应用程序速度太慢了8、所有的 Java 程序都是在网页中运行9、Java 程序存在重大安全风险10、JavaScript 是 Java 的简易版1

訾博(ZiBo)的博客 404

java误解问题_关于Java的常见误解

这里总结了一下关于Java的常见误解,希望能够颠覆一下大家对Java的认识;以及改变自己对Java的误解;1:Java是HTML的扩展。Java是一种程序设计语言;HTML是一种描述网页结构的方式。除了用于在网页上放置Javaapplet的HTML扩展之外,两者没有任何共同之处。既然说到了HTML就不得不提一下JSP了,JSP全名为Java Server Pages,中文名叫java服务器页面,其...

weixin_42165712的博客 129

java误解_对JAVA语言的十个常见误解

对JAVA语言的十个常见误解JAVA 语 言 自 从 应 用 于 Internet, 迅 速 成 为 全 球 热 点。 它 的 平 台 无 关 性 仿 佛 成 为 解 决 互 易 操 作 性 和 可 移 植 性 的 灵 丹 妙 药。 然 而 对 于 JAVA 语 言 的 认 识 仍 有 不 少 误 解。1.JAVA 是 HTML 的 扩 充JAVA 是 一 个 编 程 语 言, HTML 是 一 ...

weixin_39644021的博客 125
上一篇: java多线程中的wait与notify
下一篇: Eclipse插件安装
DeepNightTwo
博客等级 码龄21年 3粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值