都说「三十而立」,但是我的30岁却迎来了行业变革,想要在继续在这行工作,立是立不起来了,但是换个赛道又心有不甘,所以一直非常纠结

        翻来复去好多天,抽了好几盒烟,喝了几保温杯的浓茶,嗨,想这个干锤子!

        与其纠结烦恼,不如让自己从这种负面情绪里抽离出来,干脆学点自己本来感兴趣,但是一直没有接触过的东西好了

        在网上搜索了各种各样的也不知道对不对的文章之后,看的一知半解的我决定尝试学习Java,随着第一行代码的成功运行,虽然只是Hello,World!,但是好歹也算是进了编程的大门了,也来这里给自己记录一下,看看自己究竟能坚持多久,究竟能够多久成为一个能够「写出来点有用的、有内容的、能够让自己和别人能够初步认可的程序」

        学习途径是B站尚硅谷的入门课程,不得不说宋红康老师还是挺好玩儿的,经常讲些奇奇怪怪的冷笑话,内容讲的不难,也能够听懂

        使用的电脑是M1的MacBook Air,跟教程里的windows系统有很大差别,在最初配置Java的时候遇到很多问题,真的是视频配置1分钟,自己研究一下午,预计后续还会有更多的差异化问题,这也没办法,确实是没有在网上找到针对macOS的Java教程,如果各位好心人看到这篇帖子,还是希望能够推荐给我一下


一、Java基本知识

1、Java基础:

1、基础程序设计:关键字、数据类型、运算符、流程控制、数组「排序算法、数据结构」

2、面向对象编程:类/对象、类的结构、三大特性、接口、设计模式

2、Java高级:

应用程序开发:JDBC、集合、IO/NIO、类库、多线程、异常处理、反射、网络

二、Java语言概述

1、软件:一系列按照特性顺序组织的计算机数据和指令的集合,分为:系统软件(Windows、macOS等)和应用软件(凡是用到的都是应用软件)

2、人机交互方式:图形化界面(GUI)、命令行(CLI)

应用程序 = 算法(解决程序写完之后正确与否的问题) + 数据结构(解决程序写完之后效率的问题)——pascal之父

3、常用的DOS命令:

1、dir:列出当前目录下的文件以及文件夹,macos为ls

2、md:创建目录

3、rd:删除目录

4、cd:进入指定目录

5、cd..:返回上一级目录,macos不是这么用好像

6、cd/:退回到根目录,macOS为cd ~

7、del:删除文件

8、exit:退出dos命令行

4、计算机语言的发展迭代史

1、第一代:机器语言,指令以二进制代码形式存在

2、第二代:汇编语言

3、第三代:高级语言

1、面向过程的语言:C、pascal、fortran等

2、面向对象的语言:Java、JS、Python、Scala等

5、Java语言版本的迭代

1、1991年,green项目,开发语言最初命名为oak

2、1996年,发布JDK1.0,约8.3万个网页应用java技术制作

3、2004年,发布里程碑版本,JDK1.5,更名为JDK5.0

4、2005年,J2SE➡️JavaSE(桌面级应用)、J2EE➡️JavaEE(企业级应用)、J2ME➡️JavaME(移动端设备应用)

5、2014年,发布JDK8.0,5.0后续的变化最大的版本

6、Java语言的应用领域

1、Java Web开发:后台开发

2、大数据开发

3、Android应用程序开发:客户端开发

7、Java语言的特点:

1、面向对象性:两个要素(类、对象)、三个特征(封装、继承、多态)

2、健壮性:去除了C语言中的指针(其实Java中也有指针「引用」)、有了自动的垃圾回收机制(JVM涉及到)但是仍然会出现内存溢出或内存泄漏问题

3、跨平台性:Java程序在任何系统都可以在针对不同系统的JVM上使用,write once,run anywhere「一次编译,到处运行」

8、JDK、JRE、JVM三者的关系

1、JDK = JRE + 开发工具集(例如Javac编译工具等)

2、JRE = JVM + Java核心类库

        9、JDK下载和安装

1、下载:官网,GitHub等

2、安装:贼傻瓜,注意问题「路径不能有中文和空格」(安装包中含有jre文件,所以配置路径时候不需要单独配置jre环境)

10、path环境变量的配置:path环境变量「操作系统执行命令时搜寻的路径

1、为什么要配置path环境变量:希望Java的开发工具(javac、Java、Javadoc等)在任何的文件路径下都可以执行成功

2、如何配置:macos跟windows区别很大,配置JAVA_HOME

三、开发体验——HelloWorld

1、编写:

1、创建一个txt文档,后缀改为.java,命名为HelloWorld.java

2、输入代码:

class HelloWorld{public static void main(String[] args){System.out.println("Hello, World!");}
}

3、编译:javac HelloWorld.java

4、运行:java HelloWorld

2、常见问题(bug)的解决

3、总结写的第一个程序

四、注释:comment

1、单行注释://

1、作用1⃣️:对所写的程序进行解释说明,增强可读性,方便自己,方便别人

2、作用2⃣️:调试所写的代码

2、多行注释:/*……*/

3、文档注释:/**……*/

1、作用:注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件体现形式的该程序的说明文档

2、注意:多行注释不可以嵌套使用

4、特点:注释的内容不参与编译

五、API文档:

1、API = application programming interface,习惯上将语言提供的类库都称为API

2、API文档定义:针对于提供的类库如何使用的说明书,类似于新华字典,1.6的中文版翻译较好,内容与1.8差距不是很大

六、良好的编程风格:

七、开发工具使用:

1、文本编辑工具:

1、记事本

2、UltraEdit

3、EditPlus

4、TextPad

5、NotePad

2、Java集成开发环境(IDE):

1、JBuilder

2、NetBeans

3、Eclipse

【Java自学】搬砖中年人代码自学之路Lesson 1相关推荐

  1. 【Java自学】搬砖中年人代码自学之路Lesson 5

    是的我还在.... 2022年真的是我经历过的最牛逼的一年了,从年初开始到现在3个多月的时间,先后经历了2次疫情隔离,合计一个半月.作为一个自控力非常弱鸡的人,隔离在家对我来说简直就是噩梦... 真的 ...

  2. 【Java自学】搬砖中年人代码自学之路Lesson 8

    这一堂课听的最多的一句话就是「这部分先了解就可以,后面到了xxx的时候会深入的讲」,就给人一种后面还有茫茫多的只是要学习一样.... 不过今天学的这些东西自己倒是能听懂,唯独就是后面的练习题,在各种点 ...

  3. 土木搬砖工图形学学习之路——射线与包围盒的相交测试

    本人土木转计算机,目前刚刚开始研究生生涯.最近喜欢上了三维计算机图形学,被射线与包围盒的相交测试函数卡了许久,以下分享一些个人的学习理解. 一.结构体定义 包围盒定义为三维空间中一个立方体,其六个面分 ...

  4. 币圈名词解释之对冲搬砖

    对于刚入币圈的小白来说,知识匮乏是硬伤,要想在币圈有所建树,学习.不断的学习必不可少,本文和大家分享的就是币圈名词对冲搬砖相关内容,一起来看看吧. 对冲搬砖,原理是通过软件对各个交易所的交易信息进行监 ...

  5. java书籍_非科班,自学java需要把软件工程的课程全部学习完吗?

    问题一:非科班是否能自学Java.问题二:自学Java是否需要把软件工程课程全部学完?问题三:如何自学Java? 解决问题一:非科班是否能自学Java.不知道你是否有这个担心疑虑,从事Java技术开发 ...

  6. Java Nio 之高级搬砖工(FileChannel)二

    Java Nio 系列 Java Nio 之Buffer Java Nio 之直接内存 Java Nio 之高级搬砖工(FileChannel) 一 Java Nio 之高级搬砖工(FileChann ...

  7. Java Nio 之高级搬砖工(FileChannel) 一

    Java Nio 系列 Java Nio 之Buffer Java Nio 之直接内存 Java Nio 之高级搬砖工(FileChannel) 一 前言  大家对搬砖都很熟悉吧:小绿和小蓝是搬砖工, ...

  8. Java:JVM+数据库(搬砖整理,侵权删文)

    Java:JVM+数据库(搬砖整理,侵权删文) 十一.JVM 1.Java内存区域 1.说一下 JVM 的主要组成部分及其作用? ​ JVM包含两个子系统和两个组件,两个子系统为Class loade ...

  9. Java利用for循环解决搬砖问题36块砖,36人搬,男搬4,女搬3,两个小孩抬一砖,要求一次全搬完,问男、女和小孩各若干?

    搬砖问题 实际上与"百钱买百鸡"如出一辙,只是数字发生了变化而已. 详细解答"百钱买百鸡"问题请点击下方链接(详细到每一个小细节) "百钱买百鸡&qu ...

最新文章

  1. mybatis添加记录时返回主键id
  2. VC中海量文件读写类设计与应用(转)
  3. deflater java_java.util.zip 类 Deflater - Java 中文参考手册
  4. idea数据库反向生成实体类_IntelliJ IDEA 的数据库管理工具实在太方便了
  5. 使用强大的 Mockito 来测试你的代码
  6. Oracle放大招:MySQL 即将支持 Hash Join
  7. B/S、C/S双客户类型系统研究
  8. 部分AllWin 平台Android4.4 车机 USB兼容性
  9. 校赛热身 Problem C. Sometimes Naive (状压dp)
  10. 数据存储与访问(SharedPreferencesDemo)
  11. zzuli:1047对数表
  12. Ubuntu无法联网解决方案
  13. 宽带连接错误代码651网友推荐解决方法
  14. MapReduce案例之天气分析
  15. 服务器2016安装系统教材,Windows Server 2016 正式版安装教程
  16. Consistent 与 Mirrored 视角
  17. ballerina 学习 三十二 编写安全的程序
  18. 《人月神话》-人月神话
  19. JAVA并发类包介绍
  20. Python解题 - NOIP2005 青蛙过河

热门文章

  1. 无root权限远程安装matlab
  2. X1 CARBON加装固态
  3. java小游戏抽签系统(一)界面搭建
  4. 一般名片的尺寸是多少
  5. 人呀,就是需要时不时鞭策下自己
  6. 批量运营200个抖音号,精准引流,打造ip矩阵
  7. 不懂嵌入式,何谈物联网?
  8. 2015年完成的超级计算机,西工大荣获“2015年ASC大学生超级计算机竞赛”一等奖...
  9. 12、Nepxion Discovery 之 Discovery Agent 解决异步场景线程 ThreadLocal 上下文丢失问题
  10. C++基础-拷贝构造函数(深拷贝与浅拷贝)