谈谈如何学好java

学好与“差不多的区别”

1、java是一门非常火的语言,为什么我说非常火呢,相对于今天2020年9月6号而言,java编程语言的使用量是排在前茅,但是以后咋样,我不知道,也不想知道,无所谓对吧。

区别:

  • 差不多:如果仅仅是为了一些比较入门的项目学习java
    只学会其基本语法,常用内置包的使用,以及面向对象的思想,五天可以搞定。随着一边做项目,一边开发,你会越来越会使用java,因为语言万通的,基本使用没问题,喝水一样。但是也仅仅是这样,会用
  • 真正学好java语言,在以上的基础上,有自己的理解,有更底层的认知,便是真正学好了java
    遇到问题能快速解决问题,能有效的避免代码细节上的bug,能够通过原码了解自己有兴趣的工具类等等,能快速上手自己不熟悉的工具类等等。学好

第一步:(重要)

一:了解jdk,jre,jvm之前的关系
二:记住:封装,继承,多态三大特性(刚刚开始不了解可以,但是要记住)
三:明白其java为什么跨平台,是为什么,而不是仅仅知道其跨平台
四:学会在命令行编写和编译和运行代码,各种方式(很多人觉得无所谓,但是这一步熟悉的话,会帮你在后面认知编译,jvm加载类有一定的帮助)
五:记住jvm的结构,相应区的功能,记住哪些是线程共享区,哪些是线程独享区(线程是什么现在不懂无所谓,记住些),记住类加载机制,知道什么是class文件,与源代码的区别。

第二步:(重要)

一:弄清什么是类,类的基本属性。
二:弄清楚八种数据类型(包括其范围等等),以及引用类型,什么是类型转换,,以及二进制换算,二进制运算:反码补码,进制运算,等等等等
三:深入了解各种操作语句:for循环,while循环,if循环,+ += --等等(这里很多人觉得简单,但是却是有很多细节的东西,如:&&和&&的区别、a++ ++a的区别,甚至更深程度的^的运算;

第三步(重要)

一:学会数组,二维数组,多维数组,数组扩容等等(即使为了做项目也要学会)
三:开始理解,什么是对象,什么是类,两者的区别,
四:开始理解:各种修饰符的作用,等等(static关键字的使用,以及static关键字修饰的变量存放在jvm的哪个位置)
五:学会方法的方法的调用,声明,参数等等,,,,
六:能够编写冒泡排序,选择排序,,,等等(一定要自己理解透彻)

第四步:(重要)

一:了解父类与子类,哪些修饰符修饰的方法和属性可以被继承,可以被重写
二:知道Obejc是祖宗类,结合jvm,知道父类,子类,各种修饰符修饰的属性显示初始化的顺序(很重要,很重要)
三:知道什么是抽象类,什么是接口,以及他们的使用,他们的区别以及jdk1.8之后和之前的区别
四:到了这里,要学会看原码(很重要,任何教材任何百度上的大神,都没有原码靠谱,所以一定要尝试学会看原码)
五:学会debug调试
六:知道什么是多态,很重要很重要很重要,重要的事情说三百遍
七:理解ava的装箱以及拆箱
八:理解什么是方法重载,什么是方法重写。为什么要封装

第五步(重要):

一:知道String的使用,以及什么是字符串常量池,字符串常量池在哪。
二:比较==与erquals的区别,通过原码弄懂最好
三:弄清楚数据结构,栈,数组,链表,哈希表,红黑树,队列
四:开始学习集合的使用,结合原码使用,Set集合,和map集合,
五:比较器排序和自然排序的使用以及区别,

第六步(重要)

一:开始学习反射机制
二:什么是反射机制,Class对象什么时候创建(结合原码)
三:通过反射访问属性,通过反射访问方法,通过反射创建对象,等等等
四:反射创建对象和传统创建对象的区别

第六步(重要)

一:开始学习异常
二:了解各种异常,常用的异常,Exception和error的区别,运行时异常和编译时异常的区别
三:能自定义异常
四:try catch finall的使用,已经final更为底层常见的细节等等

第七步(重要)

一:开始学习线程,明白什么是线程,什么是进程,主线程什么时候创建
二:要清晰的明白,线程没有网上说的那么难,
三:要想短时间内学懂线程:1抛开顺序运行的思维。2:什么是java线程抢占式
四:理解线程不同状态的区别。以及线程状态的如何转换,
五:结合jvm里面线程独享区,线程共享区弄明白什么是线程安全,以及锁的使用
六:能够操作三线程以上的锁,做到自己随心所欲的目的(曾经有个大神说,工作两三年的人都不一定可以随心所欲的操作三线程以上的锁,我只想说,放屁,只要前面不偷懒,喝水一样);
七:学会使用各种常用的线程池(不多说这个了,有关为什么使用线程池,以及线程池相关的细节问题,我以后有时间单独写一篇博客)

第八步(重要)

一:学习流
二:明白什么是字节流,什么是字符流
三:什么是缓冲流,什么是管道流,什么是随机流,反正常见的流能学会使用
四:字节流与字符流的转换
五:文件流的使用
六:要有个清晰的认知,什么时候使用什么流,什么时候要flush,要及时关闭流
七:尝试用原码去看一下各种流直接的实现原码,了解一下其关系(这个东西嘛,无所谓,觉得自己会用就行的也没错,我只是建议)

第九步:(重要)

一:学习一下网络编程
二:有时间的小伙伴可以去学习一下计算机网络,或者计算机组成原理(不懂线程的小伙伴可以去学习一下)
三:理解tcp网络编程和UDP网络编程的区别以及应用场景
四:将线程用在serve的创建上,最好是线程池(注意线程池的选用)
五:客户端与服务器之前的相互通信(涉及到流关闭的细节问题等等)

最后:

一:有时间的小伙伴可以去学习一下jdk1.8的特性
二:以上的类容只会少,不会多,因为时间的问题。很多东西没有考虑进去,但是都很重要
总结如下:

  • 一定要弄清楚jvm
  • 一定要学会看原码
  • 能够非常快速的上手自己不熟悉的工具类

如何真正学好java相关推荐

  1. 除了java还学什么_学好Java编程除了努力还需要具备什么?

    Java编程语言的热流席卷了全球,它的出现摆脱了C语言尾大不掉的困境,灵活.多变,塑造性强的特点不仅符合当下互联网的发展趋势,也得到一批批青年俊才的青睐,Java编程抛出的橄榄枝,也吸引了大量计算机专 ...

  2. 小猿圈零基础怎样学好java?

    目前比较火爆的学科有Java.Python.Linux.前端等等,学习java的也是相对较多的,应用也是非常广泛的,竞争也是很多大的,工资也很可观,今天小猿圈针对零基础怎样学好java进行了讲解. 首 ...

  3. 想学好Java开发,你要做到这三点

    IT行业近年来的发展可谓是相当不错,Java程序员更是最受欢迎的职业,很多想进入IT行业的朋友都会选择学习Java.因为它的应用广泛,从业机会比较多,但是他们都比较关心一个问题,那就是怎么学好Java ...

  4. 如何学好Java?你应该躲开这几个坑

    互联网的快速发展,诞生了各种新技术,但无论技术如何更新迭代,Java在编程语言届的位置依然不可动摇.Java较高的薪资和广阔的发展前景让很多人心动不已,零基础转行来学武汉Java培训的人络绎不绝.那么 ...

  5. 怎么能学好Java开发,学好Java一般需要多少钱

    怎么能学好Java开发,学好Java一般需要多少钱?互联网时代,掌握一门潮流的编程语言就意味着高薪和广阔的就业前景,而Java是很多人的一致选择.不过用户需求的不断变化促使企业对Java开发人员的技能 ...

  6. 怎么才能学好Java编程写好Java代码?

    动力节点Java培训最新上线Java实验班,等你来测试自己适不适合学习Java编程哦! 刚刚接触Java编程的朋友总会遇到一些情况,比如:跟着Java基础教程看过一遍后,自己写代码的时候却无从下手:写 ...

  7. 学好Java开发的关键七步

    在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述如何学好Java开发的关键七步,更多Java专业知识,广州疯狂Java培 ...

  8. c语言不会可以学好java吗_不会C语言能学Java吗

    不会C语言能学Java吗?当然可以,学码思不少小伙伴没有任何代码基础,来这里Java培训学的也非常不错,都获得了理想的就业.现在时代不一样了,编程语言更新换代的速度也很快,很多老程序员都是从C语言入门 ...

  9. 英语不好学java好学吗_英语不好能学好java,做程序员吗?

    原标题:英语不好能学好java,做程序员吗? 很多想学java的朋友,都存在着这样一个疑惑:我的英语很差劲,对学习java没有影响吗?java编程用到英语的地方很多吧,我英语不好能学好java吗? 学 ...

  10. Java好学吗,我们怎么才能学好Java

    Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.Java 技术具有卓越的通用性.高 ...

最新文章

  1. awk 抓取文件子集
  2. Nginx作为静态资源web服务
  3. php 动态显示数字,php – 如何动态创建具有指定数字的图像?
  4. mybatis动态sql中的where标签的使用
  5. java正立三角形_java for循环练习(9*9乘法表、正三角形、菱形)
  6. 13000.tcp服务器简易示例程序(linux)
  7. 用C#实现图片数据库存储与显示
  8. ATM柜员机JAVA课程设计_JAVA课程设计报告银行ATM机系统.doc
  9. ssh远程访问失败 Centos7
  10. jmeter非GUI的运行命令
  11. 「代码随想录」96.不同的二叉搜索树【动态规划】详解!
  12. 各地实时摄像头_你头顶的摄像头将变成有脑子的眼睛!亚马逊推出AWS Panorama,强监控时代来临?...
  13. GOOGLE外贸买家信息搜索技巧
  14. 计算机网络四个阶段的主要特征,1计算机的四个发展阶段的主要特征
  15. 企业微信加好友太频繁怎么办?
  16. Android手机车牌识别OCR
  17. GRE Over IPSec技术
  18. 2018.9.10 工作日志 猎宝行动
  19. 这台IPAD最适合程序员编程!!!
  20. 北京现在软件学校计算机,计算机软件排名 计算机软件学校排名

热门文章

  1. 未来采宝移动支付行业三个风口:生物识别 物联 人工智能
  2. 中国象棋棋盘java_java绘制国际象棋与中国象棋棋盘
  3. php生成连续递增的excel列索引
  4. 滴滴司机端使用 出现 bridge start carRequest
  5. Power bi 3.4 簇状柱形图
  6. 【程序人生】很多小伙伴说想看我的真容,这次满足你的好奇心!!
  7. 机器阅读理解 | (3) 机器阅读理解简述
  8. uniapp 导航栏图标添加步骤
  9. python异步处理请求_python异步处理HTTP请求
  10. Excel万能读取Util类初级版 ExcelUtil excel读取 Excel万能