Java编程语言那一部分最难?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java编程语言那一部分最难?相关的知识,希望对你有一定的参考价值。

很多刚接触Java编程的同学都觉得学习Java编程很简单,但是学到后期越学越吃力,今天我就总结一下Java编程哪一阶段最难学。

目前来看,对于那些打算通过学习Java来找到一份工作的同学来说,可以分为三个学习阶段,初级,中级,高级。不同的学习阶段有不同的难点,下面来分这三个阶段看下。

初级:面向对象,基本上大多数同学在学到这个概念的时候都会懵逼,太抽象了,逻辑思维不太好的同学,掉到这个坑里就很难再爬上来。多线程,这个也是初级里面比较难学的一个章节,而且有些已经工作两三年的同学对这个知识点仍然是一知半解,大多数Java初级程序员在工作当中也接触不到这方法的Java编程开发工作。

中级:这块最难的恐怕就是要学的知识点太多了,无从下手,前台的html,css,javascript,后台的servlet,jdbc,数据库,tomcat,要学习的知识点真的是太多了,零基础学习Java刚学到这块知识的时候,会觉着比较杂乱,不过只要是把这部分的知识点掌握了,再去学习Java编程后面框架的知识,会容易很多。

高级:对于能够学习到这块知识的同学,Java编程对他来说已经没有难学的了。万变不离其宗,只要是把前面的Java编程基础知识掌握好,后面会越来越容易。

以上就是我总结的Java编程各阶段的难点汇总。万事开头难,有很多人都倒在了hello world上面。只要你用心,Java编程其实并不难
参考技术A 学习Java其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。每一种语言的程序设计思想
大同小异,只是一些由语言特性的而带来的细微差别,比如Java中的Interface,你几乎在以前的学习中没有碰到过。以下我
仔细给你说几点:

1。我们必须明确一个大方向,也就是说现在面向对象的编程范畴。尽管人工智能曾经有所浪潮(看看Borland为什么有Turbo
Prolog),但未来5-10年工业界广泛承认并接受的将是面向对象式的编程。

2。工业界目前最流行的面向对象编程语言就是C++和Java。所以基本上锁定这两个方向就可以了。而且完全可以同时掌握。

3。掌握Java的精华特性而且一定要知道为什么。比如,Interface和multi-thread。用interface是更好的多继承的模型,
而多线程则是设计到语言一级的重要特性。要完全理解interface是为什么,用多线程又有几种常用的编程模型。

4。理解了语言的特性是为什么了之后,就可以试着上升到设计这个层次,毕竟学习语言是要用的。目前比较好的开发模式是采用
自定向下的面向对象的设计,加上MVC的模式(你可以看一下我介绍的关于MVC的内容)。首先要找出最顶层的对象(这往往是最
难的),然后一层一层往下递归,记住每次应符合7+/-2的原则,因为我们人的短记忆就是这样。一般有图形用户界面的应从界面
开始设计。

5。有了基本设计模型后,可以学一些设计模式(Design Pattern)。这是目前证明很有效的。比如体系结构模式(Layering分层,
Pipe/Filter管道或过滤器),设计模式(有很多,比如对象池Object Pool、缓冲池Cache等),编程模式(比如Copy-on-Write)。
懂了这些模式之后,就会对系统的整体结构有很好的把握,而学术上也有倾向一个系统完全可以由各种模式组合而成。前面提到的MT实
际上就有好几种模式,掌握后就不用自己花很多时间去试了。另外一个很重要的领域就是并行和分布式计算领域,大概有20种左右。

6。接下来就不能纸上谈兵了,最好的方法其实是实践。一般教科书上的例子并不能算是实践,只能算是让你掌握语言特性用的。而提倡
做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能是你自己越来越迷糊。我认为比较好的方法是找一些
比较经典的例子,每个例子比较集中一种编程思想而设计的,比如在我的实践当中,我曾经学习过一个很经典的例子就是用Java实现的
HotDraw(源自SmallTalk),你可以用rolemodel或hotdraw在搜索引擎上找一下,我记不大清楚了。好象rolemodel.com是个网站,
上面有原代码和一些基本设计的文档。另一个来源可以到www.umlchina.com是个不错的文档基地。从HotDraw上我学到了什么是
Framework,以及如何用rolemodel的方式来构造,这样我就可以应用到其他的地方。顺便说一句,这个例子你绝对不会觉得小,只会觉
得大,并且他还是真正的商用的Framework。

7。结合前面学到的设计模式你就可以很好的理解这些经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步
的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。

8。好象以上谈的跟Java没什么关系,其实我们早就应该从单纯的学习语言到真正的学习好编程的领域。学习技术是没有止境的,你学习
第一种语言可能要半年时间,以后每种语言都不应该超过两个月,否则你会觉得学习语言是包袱,是痛苦。

9。学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。
参考技术B java编程语言中多线程部分最难。因为这涉及到线程的同步,稍不注意就可能造成逻辑上的错误甚至死锁。
且因同步不对造成的异常往往很难发现,调试起来相当困难。
参考技术C java编程语言整体上还算可以,不是很难的。最难的是能使用好数据结构,这个才是重点。 参考技术D java编程语言那一部分最难。
软件开发过程中难的从来不是编程语言自身,而是项目中的功能实现,是算法、架构等等。

Java开发中遇到最难的问题!java使用随机数初始化数组

Java并发编程技术官笔记

由于篇幅原因,我只能在文章中展示部分的章节内容和核心截图,如果你需要完整的pdf版本,可以在文末免费领取

首先给大家分享学习的思维导图,学习是需要逻辑完整的,这样才可以更高效的学习:

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

下面是笔记的总目录:

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

1,线程基础、线程之间的共享和协作

  • 基础概念
  • 认识Java里的线程
  • 对Java里的线程再多-点点认识
  • 线程间的共享和协作
  • 面试题

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

CPU核心数和线程数的关系

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

澄清并行和并发

2,线程的并发工具类

  • Fork-Join
  • CountDownLatch
  • CyclicBarrier
  • CountDownLatch和CylicBarrier辨析
  • Semaphore
  • Exchange
  • Callable. Future和FutureTask

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

3,原子操作CAS

  • 什么是原子操作?如何实现原子操作?
  • CAS实现原子操作的三大问题
  • Jdk中相关原子操作类的使用

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

4,显式锁和AQS

  • 显式锁
  • 了解LockSupport
  • CLH队列锁
  • AbstractQueuedSynchronizer
  • 回头看Lock的实现

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

5,并发容器

  • 为什么要使用ConcurrentHashMap
  • ConcurrentHashMap
  • ConcurrentSkipList系列
  • ConcurrentinkedQueue
  • 写时复制容器
  • 阻塞队列BlockingQueue

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

6,线程池

  • 为什么要用线程池?
  • ThreadPoolExecutor的类关系
  • 线程池的创建各个参数含义
  • 扩展线程池
  • 线程池的工作机制
  • 提交任务.
  • 关闭线程池
  • 合理地配置线程池
  • 预定义线程池
  • CompletionService

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

7,并发安全

  • 什么是线程安全性
  • 死锁
  • 其他安全问题
  • 并发下的性能
  • 线程安全的单例模式

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

8,实战项目

  • 并发任务执行框架
  • 性能优化实战

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

9,JMM和底层实现原理

  • JMM基础计算机原理
  • 物理内存模型带来的问题
  • 伪共享
  • Java内存模型( JMM)
  • Java内存模型带来的问题
  • happens- before
  • volatile详解
  • fnal的内存语义
  • 锁的内存语义
  • synchronized的实现原理
  • 了解各种锁

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

10,Java8新增的并发,扩充知识点- Disruptor

  • 原子操作CAS
  • StampLock
  • CompleteableFuture

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

最后

看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面

小编专门为你量身定制了一套<Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法>

image

针对知识面不够,也莫慌!还有一整套的<Java核心进阶手册>,可以瞬间查漏补缺

image

全都是一丢一丢的收集整理纯手打出来的——收整在***【我的学习笔记大全】***,有需要的朋友可以自取

更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~

image

B)***,有需要的朋友可以自取

更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~

[外链图片转存中…(img-20nqdgay-1625562718655)]

image

以上是关于Java编程语言那一部分最难?的主要内容,如果未能解决你的问题,请参考以下文章

为什么中文自然语言处理是 NLP 中最难的?

最易学和最难学的编程语言 Top 5!Java 排在哪?

最难的10个Java面试题,不服来战!

Java大厂技术面试题汇总!象棋游戏java编程

Java开发中遇到最难的问题!java使用随机数初始化数组

最易/难学习的编程语言榜单出炉,C++最难学?