我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#开发者怎么过渡到JAVA开发者

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#开发者怎么过渡到JAVA开发者

这篇文章将为大家详细讲解有关C#开发者怎么过渡到JAVA开发者,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1.IDE

VS是宇宙***IDE,这个是无可争辩的,Eclipse虽然有些弱,但也做得不错了.

相比VS动辄8,9个G的身材,Eclipse则小很多,我用的是J2EE版本的Eclipse,解压后300M+,免安装.

当然,VS庞大,但是对于提高开发效率,则有则无可比拟的优势.

for(int i=0;i<5;i++){              }

这样的代码,我在Eclipse里面是一个字符一个字符输入的,VS的话,打完 for 之后,两下Tab就可以了。

当然在代码重构这里,Eclipse则可用的操作比原生的VS多很多。(VS2015的话,重构也很牛逼,ReSharp附体的感觉)

IDE的话,还是一分大小一分功能,对于脑子比手快的同学来说,Eclipse是一种折磨。如果有Java的高手,请教一下如何加快速度。

另外一点,Eclipse的默认字体,对中文不友好,VS则好很多。

2.泛型

泛型则是Java的一个槽点。擦除法害死人。

下面的技术问题,如果有觉得错误的地方,请一定指出。

C# 的泛型,根据不同的类型参数,产生不同的新的匿名类,Java则只是编译阶段,假装有泛型的概念。

ArrayList<Integer> c = new  ArrayList<Integer>();     c.remove(1);     c.remove((Object)1);

现在集中吐槽一下上面这段代码。

一个列表的话,删除元素,C#会有一个 Remove 和 一个RemoveAt,前者表示要删除指定的元素,后者表示删除指定下标的元素。

然后,如果你在代码里面写 c.remove(1); Java的动作是删除下标为1的元素。。

这里主要的问题是,当初Java在设计的时候,没有考虑到通过下标删除或者直接删除两种需求,所以没有将RemoveAt和Remove区别起来.

当然,这样就造成了Remove(Integer)的时候,会出现歧异,为了消除歧义,又需要将Integer或者其他泛型类型强制转为Object.

在C#里面,由于具有RemoveAt方法,完整的泛型支持,所以Remove方法后面直接跟上要Remove的东西即可,这里是需要注意的一个点.

3 基本类型

int a = 1;             Int32 b = 2;

int 和 Int32,在C#里面是同一个类型(当然都是值类型,保存在栈上面的)

C# Via CLR里面也说过这件事情,int 是Int32的别名.(如果这个想法有错误,希望大家指出)

List<int> t = new List<int>();             List<Int32> m = new List<int>();

所以在C#里面这样写是可以的.

在Java里面,int 和 Integer 可是泾渭分明:

int 表示基础类型,Integer表示类,在泛型的时候,只能用Integer.

这里的区别我不是很清楚,int 好像就是一个简单的存放数字的东西,也没有什么方法可以使用.

ArrayList<Integer> c = new  ArrayList<Integer>();

所以,Java里面,类型参数T 看上去也没有C#灵活。

4.Java没有Struct概念

本质上说Class和Struct在业务上差不多。只是 Class在堆上,Struct在栈上,一个是引用传递,一个是值传递。

一般来说,一个 轻的结构,贫血模型,我喜欢用Struct,一个 重的结构,充血模型,我喜欢用Class。

Java,很抱歉,没有Struct,解决方案是Class,或者是内部Class。。

为什么Struct不能在Java里面实现,是设计使然,还是技术问题,我不知道。

5.Java的枚举

这里倒不是吐槽Java枚举功能上的问题,而是,Enum这个玩艺,还要依赖于JDK版本的。

JDK1.5以上才行,如果你的工程JDK版本过低,Enum都不支持。

C#里面的Enum应该是全Framework支持的,(现在都找不到NET2.0以前的Framework了,无法验证1.0,1.1,记忆中是支持的。)

为什么说到这个问题呢,有一次带学生做实验,Eclipse里面新建了一个工程,也没有选择JDK版本,使用了默认的低版本的JDK,然后,呵呵,

Enum这么简单的东西,都编译不过。学艺不精阿。。。

Enum的值,本质是一个数字,Enum则是一个结构,Java的Enum是什么呢?

 6.字符串

String A = "Hello";             String B = "Hello";             System.Console.WriteLine(A == B);             System.Console.ReadLine();

C#里面是True。Java里面也是True。

(Java里面A和B的地址指向同样的地方?C#字符串驻留了。)

String a = new string('a', 10);             String b = new string('a', 10);             Console.WriteLine(a == b);             Console.ReadLine();

这个在C#里面也是True,比较地址,由于NET的神秘的字符串驻留机制,其实两个String指向同样的地方。

String A = new String("Hello"); String B = new String("Hello"); Boolean C = (A==B);

这里是False,Java真正的比较了两个地址,两个地址是不同的。如果真的要比较,请用诸如 Boolean C = (A.equals(B)); 这样的方法。

关于“C#开发者怎么过渡到JAVA开发者”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#开发者怎么过渡到JAVA开发者

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C#开发者怎么过渡到JAVA开发者

这篇文章将为大家详细讲解有关C#开发者怎么过渡到JAVA开发者,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.IDEVS是宇宙***IDE,这个是无可争辩的,Eclipse虽然有些弱,但也做得不错了.相
2023-06-17

Java开发者遇到的问题有哪些

这篇文章主要讲解了“Java开发者遇到的问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java开发者遇到的问题有哪些”吧!1、Java“死亡竞赛”中最难的问题让我们从最难啃的骨头开
2023-06-17

android怎么打开开发者模式

要打开Android设备上的开发者模式,请按照以下步骤操作:1. 打开手机的设置菜单,可以在应用列表中找到设置图标,通常是一个齿轮或者一个齿轮加锁的图标。2. 在设置菜单中,向下滚动找到“关于手机”或“关于设备”的选项,然后点击它。3. 在
2023-09-12

gitlab怎么能让开发者push

这篇文章主要介绍“gitlab怎么能让开发者push”,在日常操作中,相信很多人在gitlab怎么能让开发者push问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”gitlab怎么能让开发者push”的疑惑有所
2023-07-05

亚马逊开发商名称开发者id怎么填

在亚马逊开发者中心注册开发者账号后,您可以创建一个开发商名称并获取开发者ID。在填写亚马逊开发者账号信息时,您需要提供以下信息:开发商名称:您可以在“开发者中心”中创建一个开发商名称,该名称将用于标识您的应用程序或服务。开发者ID:您可以在“开发者中心”中获取开发者ID,该ID将用于标识您的开发者账号。在填写亚马逊开发者账号信息时,请确保您提供的信息准确无误,以确保您的应用程序或服务能够成功地与亚...
2023-10-27

怎么配置plsql开发者环境

要配置PL/SQL开发者环境,需要安装Oracle数据库和需要的开发工具。以下是配置PL/SQL开发者环境的一般步骤:安装Oracle数据库:首先,您需要安装Oracle数据库。您可以选择安装Oracle Express Edition(X
怎么配置plsql开发者环境
2024-04-09

Java开发者如何入门Apache Camel

这篇文章给大家介绍Java开发者如何入门Apache Camel,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Apache Camel是一个非常实用的规则引擎库,能够用来处理来自于不同源的事件和信息。你可以在使用不同的
2023-06-17

eclipse怎么进入开发者模式

Eclipse是一个开发工具,它不具备类似于操作系统或移动设备中的“开发者模式”。不过,你可以通过以下方式使用Eclipse进行开发:1. 下载和安装:首先,你需要从Eclipse官方网站(https://www.eclipse.org/d
2023-09-16

android开发者模式怎么关闭或开启

要打开或关闭Android设备的开发者模式,您可以按照以下步骤操作:开启开发者模式:1. 打开您的Android设备的“设置”应用。2. 在设置中,向下滚动并找到“关于手机”或“关于设备”选项。3. 找到“版本号”或“内部版本号”选项,并连
2023-10-09

Java新手开发者需要注意什么

这篇文章主要介绍“Java新手开发者需要注意什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java新手开发者需要注意什么”文章能帮助大家解决问题。Java 是一个多功能的编程语言,在某种程度上,
2023-06-16

开发者视角:选择Go还是C?

开发者视角:选择Go还是C?在软件开发领域,程序员们经常需要面对一个重要的选择:使用哪种编程语言来开发项目。在众多编程语言中,Go(又称Golang)和C是两个备受关注的选项。本文将从开发者的视角,分析选择Go还是C的优缺点,并通过具体的
开发者视角:选择Go还是C?
2024-03-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录