j***a语言的不足,j***a语言有哪些缺点

kodinid 9 0

大家好,今天小编关注到一个比较意思的话题,就是关于java语言的不足的问题,于是小编就整理了5个相关介绍Java语言的不足的解答,让我们一起看看吧。

  1. 为什么我学java总觉得自己漏掉了之前的知识?该怎么办?
  2. Java有哪些不好的设计?
  3. Java这种相对难度更高的语言,0基础学习真的可能嘛?
  4. 为什么有些人在网络上都喜欢黑JAVA呢?
  5. 如何优雅地向Java程序员介绍go语言?

什么我学JAVA总觉得自己漏掉了之前的知识?该怎么办?

很正常,学的时候理解了,但是没有经常用的话大多都容易忘记,一些经常使用的知识就不大容易忘记了。所以学的时候要做好笔记,没事的时候翻一翻,用到这块的时候记不大清楚了没关系,去翻翻笔记,就相当于建立一个索引目录一样,你只要这个东西存储在哪,回头能找到就好了。


其实这是一个很正常的事情,题主也不必特别的恐慌,但是我们要做到有方式去应对,也不要觉得自己是不是没有什么天赋这样怀疑自己。

java语言的不足,java语言有哪些缺点-第1张图片-安济编程网
图片来源网络,侵删)

编程毕竟不像应试教育知识点,知识体系都是有衔接的,一环套着一环的,慢慢加深。所以也导致在学习J***a的时候,很容易学这里忘哪里,因为很多知识学完之后,你长时间不用的肯定会有这个问题。打个比喻:线程不是所有的程序中都会用到的吧,那在刚开始在学习的时候绝对会学到,当你做两年开发的时候,都没用到过,你突然在想想线程怎么用你也会懵。

那么现在知道了为什么学这里忘那里,那么答主来说说自己是怎么解决这个学这里忘那里的问题的呢?

第一:在第一次学习到这个知识点的时候一定要学会,并且用熟练

java语言的不足,java语言有哪些缺点-第2张图片-安济编程网
(图片来源网络,侵删)

熟练使用是第一要求如果使用没有熟练就不要去整理什么笔记了。当我们能对知识点使用熟练之后,后面就是记的问题了。记东西这个事情,其实和传统应试教育知识点一样,常常拿出来看,就算你记忆力在好的人,如果长时间不去看,都一样的。现在大家人手一个手机可以整理成云笔记,手机打开就能看,更加方便。其实整理笔记还有一个好处,在你会使用的基础上你可以整理下今天的学习思路,让自己对今天的知识点有更清楚的认识。

不管是编程语言的学习,还是应试教育的学习,其实都是一个积累的过程,这个过程肯定是难受的。但是编程语言可能很多知识点不没有什么关联,不要因为一个点的学习不好从而否决了自己,也不要因为感觉别人学的好而觉得自己是不是不适合学,你既然选择了学习就要安下心了,当你觉得自己实在是不想学那也最好乘早,别浪费时间和金钱。不要一直由于纠结。但是不管是学也好,不学也好,一定不要否定自己,我们还是要以一个自信的状态去面对接下来的事情。生活不易,开心最重要。

总结:J***a语言的学习和传统应试教育的知识点的学习是有所区别的,不要否定自己,学就好好的学,不学的可以乘早早其他方向

java语言的不足,java语言有哪些缺点-第3张图片-安济编程网
(图片来源网络,侵删)

实际上很多初学者在学习J***a的过程中,都会面临这样的问题,甚至很多初级程序员工作中也会有这种感觉,认为自己的代码存在很多问题,但是自己却找不到都有哪些问题。

J***a的学习过程具有比较强的关联性,实际上前面的知识如果没有掌握全面,后面的知识很难能够运用好,所以在学习的初期一定要把基础打好。对于J***a初学者来说,在学习的前期,要把学习的重点放在面向对象概念的理解上,比如类、对象、接口封装继承多态等概念就非常关键,而且在不同的学习阶段,都应该重新审视一下对于这些基础概念的理解,编程的学习过程同样需要“温故而知新”。

学习J***a编程要把握住一条主线,这条主线就是J***a的面向对象编程过程,分为三个步骤,分别是类的定义、对象的创建方法调用,掌握了这条主线,剩下的内容就是来丰富这条主线的。比如封装的目的是提高程序的健壮性、可复用性和安全性,封装是模块化编程最基础的要求,而继承则能够完成类的扩展,能够在很大程度上完成代码的复用,而且逻辑关系紧密,最后多态赋予了J***a更大的灵活性,在很大程度上提升了J***a程序的伸缩性。

在学习J***a的过程中,除了要把握住主线之外,还需要做两件事,一件事是要有阶段性学习总结,另一件事是要有明确的学习方向(规划)。在阶段性总结的时候,可以通过多个综合性的实验来检验自己的学习成果,同时要阅读优秀的代码,掌握其中的编写规则,阅读代码的过程是比较重要的。

实际上,对于很多编程语言的初学者来说,阅读经典的程序代码是提升自身编程能力的有效方式之一,比如很多计算机专业学生往往都会通过阅读Linux操作系统的代码来提升代码编写能力,同时掌握操作系统技术细节(***管理任务调度等)。

另一件事就是规划一个明确的学习方向,由于J***a语言是全场景编程语言之一,所以一定要明确自己的学习方向,这样才会有更好的学习效果。对于很多初学者来说,以J***a web方向来制定学习计划就是不错的选择,而如果自身的学习能力比较强,而且具有一定的数学基础,也可以按照大[_a***_]方向来制定学习***。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!

知识点记得不牢固,看完懂了,写一遍然后就过了,然后学习下一个知识点,学到最后开始写项目,前面学的基本都记不起来,最主要的原因就是没有复习,每天学的新知识记好了还要去复习之前的知识点,才不会忘,最好自己到网上找个DEMO做一做,印象是最深刻的,因为项目中运行时发生的错误是最让人难忘的,就能这个知识点给我带来什么样的错误,我怎么去解决,这都是一个难忘的过程,祝你顺利。

一个多敲,做完一个项目要总结项目中遇到的问题以及解决思路。另一个就是多记笔记,形成自己的学习习惯,多看书和阅读源码

例如在做一个CRUD的项目时候,设计类和类的行为时,查询一个用户,可以根据用户名来查询也可以根据id查询

这样就可以复习到重载的概念,那么顺便可以对比下重写。

学习spring框架的时候,可以顺带复习下反射机制。学习Mybatis的时候可以复习下之前jdbc是怎样的,自己是否可以用jdbc来实现类似的小轮子。

可以通过回答问题,记录博客等方式与人分享,这样能够把自己脑海里面的知识过一遍,记忆更加深刻,另外也可以获得正的反馈。要有耐心,学的慢没关系,只要自己始终走在正确的学习道路上就行。

J***a有哪些不好的设计?

编译期间泛型,有时候运行期间就会让人疑惑,字段的get.set不如c#属性方便,stream的api说实在的很难用。不如c#简洁。模块化最近才出来,之前都是打包工具来做这些。其实问题就可以看j***a升级文档,文档写了什么,就说明之前做的不好

J***a的出发点是提供一个比C/c++“安全”得多的编程环境。虽然GC和数组越界检查起到了很大的作用,但是J***a又在以下3点偏离了安全初衷,使得程序员仍然需要时时刻刻提醒自己才不会犯错

  1. 整数计算会无声overflow/underflow。这就是说你不能用c = (a + b) / 2来计算两个整数的平均值。由于这个非常反直觉,而且一旦溢出程序员也得不到提示,因此历史上造成了JRE的标准库里潜伏很多很多年的bug
  2. 多线程情况下的Memory Model。由于向性能妥协,这个机制偏复杂,在没有深入研究的情况下大多数程序员都会犯错。更糟的是很多J***a程序员甚至不知道这个概念(也许连volatile这个关键字都没用过)
  3. Exception。理论上Unchecked Exception几乎可以从任何一行调用中冒出来,因此分析代码的时候程序员不仅要理解正常情况下的程序流程,还要兼顾任何一行冒出异常的情况。这是非常大的思想负担(C程序员就不要担心这个)。如果处理不好,异常会破坏程序核心对象图的完整性,导致任意后果的程序bug

J***a这种相对难度更高的语言,0基础学习真的可能嘛?

可以的,如果题主看过《刻意学习》这本书,相信就能知道,只要掌握技巧,跟对师傅,持续获得反馈,修改错误,坚持练习,任何行业,任何知识都是可以学会的。

理论知识

任何知识都有理论知识部分,这部分是根基短期没可能意义没那么大,但是越是深入越是发现它的意义。

对于j***a首先是语法基础方面,包括基本类型变量声明,面相对象编程,函数条件循环等,学了这些建议根据简单课后习题,比如这一个加减乘除计算器进行熟练复习,熟悉语法的同时获得语法的反馈。

然后是通用的编程基础,数据结构,栈,队列,链表,数组。这些数据结构有其特定的api但是无论学习那种语言都是通用的。所以一定要学好,后面不换自己开发什么都会用到,反而那些api语法记住个大概就可以,因为用的多了也就都记住了。

比如题主可以想象一下计算机系统都能干啥呢?数据存储对应文件系统,数据流等。屏幕显示音频控制对应gui编程。网络部分对应web后端,通过这样分类,然后找对于模块的api就可以了。

反馈

学习完知识后经常过一阵子就忘了,所以一定要有知识输出,像上面我罗列的分类,会发现那些细碎的知识点通过总结归纳,就可以层层引出的复习。这是因为当我们学习的时候,如果没有一个树形的知识结构,那么这些知识点在大脑中是平面化的,没有关联的,所以我们要做出归纳终结落地成笔记博客等内容,可以给自己看的同时,还可以分享出去供他们参考。然后通过自己或者他人,了解到自己的不足,进而改进完善不足,慢慢的我们就会掌握J***A这门技术了。

如果不想这样的知识输出,或者不爱写笔记博客,那也还有其他方法,做成过,就好比文章开头所说的计算器一样。学完gui可以这个桌面应用,学完网络可以这个简单的服务器。。。等小物件,不要过大就是一个demo做出来只是单纯为了练习,熟悉知识点。这样有成就感的同时印象也更加深刻。

J***a属于高级语言,如果仅自学语言,不学生态框架的话还是没问题的,如果要自学生态、框架、实战,自学比较吃力的,需要有老师或者师傅带你,教你或者在实战项目中边做边学习。

J***a语言的思想是面向对吓我,而且没有指针寄存器这些概念,由于寄生在jvm上,也跨平台,所以自学的话比较好学,起码自己看书不会看不下去,学习门槛相对c、c++等语言来说是很低的。

零基础问题不大,要想获得编程语言的成功一靠兴趣,二靠毅力,三靠天赋。兴趣让你觉得学习起来不枯燥,毅力让你不放弃,天赋让你有更高的成就。就J***A语言来说,她的学习路线在初级阶段是比较平缓的,入门相对较快。比如在框架的帮助下访问数据库,你只要了解sql语句,再加上一些配置类的工作就能很快上手了。随着学习的深入,需要的知识越来越多,设计模式、JVM调优等高阶知识。再往后就是架构方面的知识。J***A学习的优势很多,市场人才需求大,各种培训机构多,学习途径可供选择的余地大。

最后,个人的一点建议,先学语法,再学常见框架Spring,MYBATIS等。这些搞明白了,基本上就可以上手了。特别强调一下,利用好搜索引擎

J***a是一个比较抽象的开发语言,涉及知识点比较多,如果自学的话,可以按照五个阶段来学习,先学好基础知识,再逐步扩展,由易到难。要注意视频和书本内容相辅相成,切记不要只看***而不忽略书本基础的知识要点。在学习的过程中要做到多看、多想、多敲代码,下面为详细的学习阶段,如下所示:

第一阶段,自学J***a,入门很重要,至少要理解什么是J***a,J***a有哪些基础语法,J***a面向对象的编程思想,J***a能做那些事情,在自己的脑海里要有一个模糊的基本概念。

第二阶段,在我们对J***a有了一个基础的概念之后,下面我对就要学习J***a语言的知识点,如常用的API、集合、异常、线程、表达式、IO流、[_a1***_]、新特性这些知识点,这部分的知识点很重要,一定要学好、学扎实。

第三阶段,现在我们通过前两个阶段的学习,对J***a应该有了一个比较清晰的认识了,下面我就要学习J***a Web方面的知识点了。如J***a开发中用到的数据库、前端技术、Linux命令异步开发、redis、nginx、m***en、mybatis、spring框架等项目开发中常用到的一些基本技能

第四阶段,通过前3个阶段的学习,我们已经会使用了J***a的知识点,也具备开发web项目的能力,并且对数据库也有了清晰的认识,以及也了解了项目中常用到的技能和开发工具。我们就把前3个阶段学习的内容,通过开发一个小的web项目进行系统化梳理和运用。我们通过搭建一个springMVC+mybatis+oracle这样的m***en项目,更好的理解前3个阶段学习的内容。

第五阶段,通过前4个阶段的学习,我们现在已经具备了J***a开发的能力,也可以去面试寻找工作机会。但是为了更系统化,更深层次化的运用我们所学的知识点,我们可以梳理前4个阶段学习的内容,做到查缺补漏,把J***a开发中核心的功能点再详细复习整理下。

总结,J***a是一个面向对象的语言,相对来说比较抽象,自学相对来说稍微困难些,而且涉及的知识点比较多,自学容易遗漏而且不系统。所以,建议有条件的同学,可以通过报辅导班来学习。

百战程序员IT问题专业解答

零基础问题不大,要想获得编程语言的成功一靠兴趣,二靠毅力,三靠天赋。兴趣让你觉得学习起来不枯燥,毅力让你不放弃,天赋让你有更高的成就。就J***A语言来说,她的学习路线在初级阶段是比较平缓的,入门相对较快。比如在框架的帮助下访问数据库,你只要了解SQL语句,再加上一些配置类的工作就能很快上手了。随着学习的深入,需要的知识越来越多,设计模式、JVM调优等高阶知识。再往后就是架构方面的知识。J***A学习的优势很多,市场人才需求大,各种培训机构多,学习途径可供选择的余地大。

为什么有些人在网络上都喜欢黑J***A呢?

因为J***a是近20多年最流行的编程语言,用的人多了,编程水平就参差不齐。

  1. 黑J***a的方向很多历史遗留问题:语法不够现代,相比于Kotlin写起来有点啰嗦,语法糖少,函数式编程语法比较丑,不过从J***a10开始已经开始浪起来了。

J***A,的确很令人反感。因为J***A太复杂,太陈旧,太冗余,太啰嗦。

那么什么样的人喜欢J***A呢?可以用来装B的人。正是因为J***A的冗余与复杂,才可以体现自己技术的高明。

但作为甲方来说,我听到乙方要用J***A,或者html,来做我的项目,我就火冒三丈。

一个很小的项目,就能罗里吧嗦的写上好几个月。如果用DELPHI,两周就可以搞定了

当然DELPHI也因为自身问题,没有得到发展。令人扼腕惋惜。

比如,早年我们做第一代医疗系统,三个月就干出来了。

现在这群做J***A的,两年都干不出同样功能来。

但现在程序员,都是J***A,而且生态也不一样了。我也没有其他选择。

只能眼睁睁看着,一个非常简单的任务,让这帮鬼畜们唧唧歪歪,整很久都整不出来。

吃起牛来,什么微服务,什么这架构,那架构。

越是被黑越喜欢 每次都说J***a不行了 J***a没落 每次都是要挑战要对标的对象要 就如苹果一样 都说苹果怎么不行怎么拉胯 每次出新品都各种吊打 国产手机各种对标超越 我喜欢J***a 尽管它不完美还有改进的空间 但是我还是喜欢用它 除非有一天没人愿意黑它了

谢谢邀请。

这是好事,一个东西有人黑说明有一定的影响力,就好比一个跑龙套的很少人黑,但是一个当红的明星被黑的概率是大大提升。

J***a发展至今已经二十多年,我印象最深刻的2009年,当时Oracle收购了sun公司,网上一片哀鸿遍野,大家都说J***a快完蛋,但事实呢,J***a到现在依旧坚挺。当然作为一个技术人员,不要让自己的语言局限在一个上,这是题外话。

说回J***a,一个技术是否发展得好,主要看几个方面

1,是否有好的社区

2,是否有工业标准

3,是否有大公司支撑

你会发现J***a三者都具备了

1. 对J***a技术一知半解.

2. 鄙视链.

总有数量可观的一部分人,他们会不自觉抱团、站队,然后理所当然得鄙夷、贬低另一个群体。然而,被鄙视的那个群体,却又有着另一群鄙视的对象,这就是鄙视链。

开发语言的鄙视链如下:lisp的瞧不起python,用Python的瞧不起perl和c,c瞧不起C++,c++瞧不起j***a和c#,j***a和c#瞧不起js和php,js和php瞧不起html和css。

这种怪现象几乎渗透每个领域,何况是IT开发领域呢。

3. 人怕出名猪怕壮.

Stack Overflow 2018年开发者调查结果显示,最受欢迎的技术中,J***a以45.4%的数据排名第5(次于JavaScript, HTML, CSS, SQL),你都这么受欢迎了,被人黑一下开心开心也是应该的嘛。

如何优雅地向J***a程序员介绍go语言?

***设我告诉你,全球最牛的互联网公司、全世界成长最快的超级独角兽、以及全球发展最快的云计算独角兽都是以Golang为核心技术栈的,你觉得还需要优雅的向你介绍Go语言吗?这三家公司分别是Google、字节跳动(抖音、今日头条)和七牛云!

如何优雅暂时没想到,反而想到这事并不能轻松实现。因为J***a程序员学习第二语言的愿望并不是很强烈。当然Go语言的优势会打动一部分程序员的。

去年J***a集成开发环境IntelliJ IDEA的开发公司JetBrains对1500名以上J***a程序员做过一次“未来一年第二语言学习规划”的调查,结果令人咋舌。调查结果显示,J***a程序员在工作中最常用的非J***a语言是JS(即J***aScript) ,其次是关系型数据库的SQL语言(mysql、oracle和sql server等),然后为前端语言html。有一半调查者表示没有第二语言的学习***,剩下部分程序员选择前三是Kotlin、Python和GO语言。J***a程序员是学不动,还是J***a生态乐不思蜀了呢?

J***a程序员选择Kotlin语言还说得过去,毕竟Google和Oracle已经撕破了脸,都不见为净。Google推荐使用Kotlin来做安卓应用开发,之前使用J***a开发安卓应用的程序员当然要两手准备。再者J***a准备商用收费,虽然个人开发和OpenJDK使用免费,但一些程序员也要做到万无一失。

Python在机器学习、数据分析和数据可视化等方面已经具备得天独厚的优势,J***a开发人员选择它作为第二学习语言也是情理之中。那为什么还要选择GO语言呢?

到此,以上就是小编对于j***a语言的不足的问题就介绍到这了,希望介绍关于j***a语言的不足的5点解答对大家有用。

标签: j***a 学习 知识点