c 以他延续了C语言的指针,难倒了很多人,比C语言更难的地方在于他的多重继承,这一点是初学者最头疼最不容易理解掌握的地方,而Java恰好就巧妙得去掉了这两大难点。都知道JAVA入门很容易,学点基本类型,基本运算,面向对象思想,IO,就可以开发大多数的JAVA程序了。
1、c 难学还是java难学?
最常规的排序:语法上学习难度依次由高到低是c ,Java,csharp。c 以他延续了C语言的指针,难倒了很多人,比C语言更难的地方在于他的多重继承,这一点是初学者最头疼最不容易理解掌握的地方,而Java恰好就巧妙得去掉了这两大难点,抛开语法,个人认为Java其实并没有你想象的容易,首先语法里的反射机制就是一道听起来高大上不容易理解的机制,新手一般会敬而远之。
在掌握了大部分语法时,Java的设计模式更是令人难以牢记并运用,虽然说其他语言也有设计模式一说,但是Java对设计模式依赖可以用一句话表达:设计模式的存在是为了掩盖Java语法的缺陷,其实如果说要选择一门语言学习,个人还是比较推荐Java的,应用广泛,生态圈成熟,无论是大数据应用还是企业办公应用,Java毫无疑问都是非常出色的语言。
2、大家都说java不好学,到底难在哪呢?
我觉得JAVA的难度,在于它的广度!都知道JAVA入门很容易,学点基本类型,基本运算,面向对象思想,IO,就可以开发大多数的JAVA程序了!那为什么难呢?以多线程为例,最简单的实现一个Thread或者实Runnble接口就可以实现了多线程了,但是怕你乱用线程导致性能问题呀,就给你整了个线程池,以实现线程复用,但是线程池创建又有单例型的,动态型的,周期性执行任务型的好几种!而且用了多线程之后,因为线程共享资源会有线程安全问题吧?怎么办?加锁呗,synchonized加锁,锁方法,锁对象,锁代码段,锁就锁了还非得说性能不好,搞一个CAS,AQS实现reentrantLock!这时候傲娇的人来了说不想加锁,咋办呢?ThreadLocal,给你每个线程一份变量行了吧?这样数据不会相互影响!使用BlockingQueue一个一个处理总行了吧!还有多线程中的CountDownBatch,valetile,并行计算有FutrueTask,Forkjoin哪一个词汇都不是省油的灯!上面谈到的多线程只是J.U.C包下的冰山一角,而多线程这也只是JAVA下的冰山一角!而且JAVA开发最难的不止是JAVA语言,而是JAVA生态,搞JAVA的都知道下面这些:搜索引擎有lucence,solr,elasticSearch!数据库方面有hibernate,mybatis,mycat,druid,canel!缓存有redis,memcache,ehcache!消息中间件有redis,activeMq,RabbitMq,ons!往往你在一家公司用了一个框架,去另一家就要用新的,最后变成你什么都要会,什么都得学!所以如果再有人问你JAVA为什么难学?你可以自豪的说,我学的不止是JAVA,是整个生态!被JAVA坑了那么多年,现在也算是乐在其中,经常分享点自己学到的,经历过的,踩过的,
3、学java觉得难,该学点什么?
如果你不想去培训班,但是我建议还是上一个在线教育网站学习java;目的是为了你如果有有解决不了的问题,而且随时在线问。我教过了学生没有哪个学生学习java不产生一点问题的,并且代码的规范性也需要老师给予把关,不然以后的日子里存在着隐患,也不利于自己今后的发展。自学java一定要注意,先不要学习什么大型的框架;重要的是敲代码的习惯及逻辑方法,
如果没有基础开始学java建议先通过网络了解一些基本的程序设计概念,先对程序设计本身有一个基础概念,这样再开始学习java能顺利一些。java书比较有名的包括《java核心技术》卷一、卷二,还有《java编程思想》,这几本书基本上把java技术交代的比较清楚,也比较详细,建议看一看,最好能在一边看书的同时,把实验也一起做了,这样理论和实践就能结合起来。