Bilibili入门课程

一、Java入门

Java简介

Java是Sun公司1990年开发的一门编程语言
java语言特点:简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性
Java开发分为三个方向:JavaSE(标准版)、JavaEE(企业版)、JavaME(微型版)

语言特点

  1. 简单性:Java语言设计和C++很像,但是为了使语言小和容易熟悉,设计者们把C++的一些不常用和难理解的特征摒弃:比如不支持多继承,屏蔽掉指针,不支持go to语句,不使用主文件,免去了预处理程序。
    拿指针举例:指针是C++中可以直接操作内存的存在,而Java中真正操作内存的是Java的虚拟机JVM(Java Virtual Machine),这也可以得出JVM虚拟机是用C++设计的
    好处:省去释放内存,使开发者再开发时不需要每次释放内存,简单了
    坏处:效率低了
  2. 完全面对对象:Java是一个面向对象的语言,简单来说将人类世界复杂问题简单化。
    意味着要注意数据以及操作数据的方法(指令),类是数据以及操作数据方法的集合,而数据和操作数据的方法一起描述对象的状态和行为。简单来说每一对象的状态和行为是数据和方法的封装。
    类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。
    面向对象三大特性:封装、继承、多态

Collection类层次结构图

Map类层次结构图
总结

  1. 分布式: 这里指的是分布式系统,分布式系统对于用户而言,他们面对的就是一个服务器,提供用户需要的服务而已,而实际上这些服务是通过背后的众多服务器组成的一个分布式系统,因此分布式系统看起来像是一个超级计算机一样。
    例如淘宝,平时大家都会使用,它本身就是一个分布式系统。我们通过浏览器访问淘宝网站时,这个请求的背后就是一个庞大的分布式系统在为我们提供服务,整个系统中有的负责请求处理,有的负责存储,有的负责计算,最终他们相互协调把最后的结果返回并呈现给用户。
    简单来说Java分布式就是一个大部分分成很多个小部分,而很多小部分独立且互相联系实现某些功能,一个大系统可以分布很多小系统,而很多小系统也可以分布在很多虚拟机(JVM)上。

  2. 健状性: 其一:Java的健壮性说的主要是Java中有一种机制:自动垃圾回收机制(GC机制),由于屏蔽了指针,不容易导致内存泄漏,Java虚拟机负责调度GC机制,不需要程序员干涉。其二:在编译和运行时,都要对可能出现的一些问题进行检查,以消除错误的产生

  3. 安全性: Java取消了强大但又危险的指针,而代之以引用。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的,并且使用指针也容易数组越界。
    垃圾回收机制:不需要程序员直接控制内存回收,由垃圾回收器在后台自动回收不再使用的内存。避免程序忘记及时回收,导致内存泄露。避免程序错误回收程序核心类库的内存,导致系统崩溃。
    异常处理机制:Java异常机制主要依赖于try、catch、finally、throw、throws五个关键字。
    强制类型转换:只有在满足强制转换规则的情况下才能强转成功。
    底层的安全性可以从以下方面来说明
    Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
    在运行环境提供了四级安全性保障机制:
    字节码校验器 -类装载器 -运行时内存布局 -文件访问限制

  4. 平台独立与可移植性: Java在安装完开发环境后,会自带一个Java虚拟机,它是用C++语言实现的虚拟的计算机,它提供了一个字节码到底层硬件平台和操作系统的屏障,直接屏蔽掉了操作系统之间的差异,Java虚拟机这种机制实现了跨平台,针对不同的操作系统具有不同的版本
    我们在编写Java完程序经过编译后生成的字节符码文件是与平台的操作系统无关的,是被Java虚拟机识别的字节码指令,这样就可以一次编写导出运行

  5. 多线程与多态: Java 多线程编程. Java 给多线程编程提供了内置的支持。. 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。. 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。. 这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。. 一个线程不能独立的存在,它必须是进程的一部分。. 一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。. 多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。

    多态:java语言设计成适应于变化的环境,它是一个动态的语言。所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。
    比如山里面有动物,但我们不知道有什么动物,我们得去看,不看就不能确切知道,我们进山然后发现有大只猪、小松鼠、小老虎、这时我们可以描述成如下
    动物 a = 大只猪
    动物b = 小松鼠
    动物c = 小老虎
    这里所表现的的就是多态。大只猪、小松鼠、小老虎都是动物的子类,我们只是通过动物这一个父类就能够引用不同的子类,这就是多态——我们只有在运行的时候才会知道引用变量所指向的具体实例对象。

Java技术开发的三个方向

  1. Java SE: Java SE是标准本开发/桌面应用程序的开发(例如前端)
    Java SE允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。Java SE 包含了支持Java Web 服务开发的类,并为Java EE提供基础。

  2. *** Java EE:*** Java EE java企业级应用/网站开发(例如PHP)
    Java EE帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。

  3. *** Java ME:*** Java ME 移动设备开发/Android
    Java ME 为在移动设备和嵌入式设备,比如手机、PDA、电视机顶盒和打印机上运行的应用程序提供一个健壮且灵活的环境。J
    ava ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。
    并且,基于Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能
    原文链接:https://blog.csdn.net/qq_31059475/article/details/51203964

二、安装JDK

引言

说到Java,永远都有一个绕不开的话题,就是JDK(Java Development Kit)。JDK
是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。安装JDK是学好Java的第一步

下载

首先,需要在甲骨文的官网下载压缩包,地址如下:https://www.oracle.com/java/technologies/downloads/#jdk17-windows
(个人建议先不要下载最新版本,不稳定)

看自己什么系统多少位,博主是windows系统64位,后缀是.exe安装软件,下载下来之后运行软件可以安装JDK;后缀是.zip是压缩包,下载下来之后解压好了就可以直接使用.后缀.msi是可拓展的专业版,新手不建议

安装

点击下一步,下不要去动路径

三、配置Java环境变量

环境变量

环境变量(environment variables)一般是指在 操作系统 中用来指定操作系统运行环境的一些参数,如: 临时文件夹 位置和 系统文件夹 位置等。. 环境 变量 是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如 Windows 和 DOS 操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在 当前目录 下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量 ,来更好的运行进程
简单来说: 变量是指可以随意给其赋值的一个存储单元。环境是指例如jvm这些都属于小软件,它们处于操作系统这个大软件环境中

  1. Windows中的环境变量
    在Windows中,是由可视化的窗口模式展现出来的;我们可以通过WIN+R输入sysdm.cpl,点开高级可以查看windows中的环境变量
    如图

  1. 常见的Java相关环境变量的配置及作用
    PATH:PATH是操作系统用的,用来指定操作系统需要使用到的可执行程序的位置。对于Java来说,通常需要把JDK的bin目录添加进入PATH中,这样你就可以在任意目录下使用bin下面的可执行程序,如javac.exe、java.exe等

注意:这个变量一定要保证将JRE/JDK的bin纳入其中

JDK(Java Development Kit开发者工具包),JRE(Java Runtime Environment运行环境),JVM三者之间的关系,以及JDK,JRE包含的主要结构有哪些
JDK = JRE + Java的开发工具(javac.exe,java.exe,javadoc.exe)
JRE = JVM + Java核心类库

JAVA_HOME: JAVA_HOME是一个约定,通常它指的是JDK的目录。如果需要JDK的话,大部分程序会默认去环境变量中取JAVA_HOME这个变量。

CLASSPATH: 在于告诉Java执行环境,在哪些目录下可以找到我们所要执行的Java程序所需要的类或者包。不过在JDK1.5之后的版本完全可以不用设置classpath环境变量就能正常运行程序。

验证PATH环境变量是否配置成功

  1. WIN+R
  2. 输入cmd
  3. 输入javac
    如果能正常显示javac的命令,说明PATH环境变量配置成功,如图

第一个Java程序

  1. 在D盘建立一个test文件

  2. 编写java代码

  3. 将test文件夹后缀改为.java

  4. 打开WIN+R 输入cmd 进入文件夹所在目录 (博主放在D盘根目录下,所以就进入d盘即可),输入javac空格 Helloworld.java(文件名)(编译过程)。然后你就会再文件目录下看到一个Helloworld.class,这时你再输入java Helloworld(运行)

    注意: JDK版本要是低的化需要再CLASSPATH上配置环境变量.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar,否则会出现“找不到无法加载此类”

同时test文件夹里若println("")里面输入中文的话,需要加-encoding 命令使用什么编码,否则会报错(编码不可映射字节符);
test里输入法英用全英文半角;否则会报错

四、Java的运行机制

  1. 编译: 扩展名为java的文件,经过javac(编译器)编译成与平台无关的字节码
  2. 运行: 由Java虚拟机(JVM)对字节码文件解释并执行

    注意: 不同操作系统上java虚拟机时不同的,Windows屁股疼上的java虚拟机不能再Linux平台上使用。

五、开发工具

Notepad++

Notepad++是 Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语言编写的功能(UTF8技术)。Notepad++功能比 Windows 中的 Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。Notepad++是免费软件,可以免费使用,自带中文,支持所有主流的计算机程序语言。

editplus

EditPlus是一款由韩国 Sangil Kim (ES-Computing)出品的小巧但是功能强大的可处理文本、HTML和程序语言的Windows编辑器,你甚至可以通过设置用户工具将其作为C,Java,Php等等语言的一个简单的IDE。EditPlus功能强大,界面简洁美观,且启动速度快;中文支持比较好;支持语法高亮;支持代码折叠;支持代码自动完成(但其功能比较弱),不支持代码提示功能;配置功能强大,且比较容易,扩展也比较强。

ultraedit

UltraEdit 是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII 码,完全可以取代记事本,它是一款需要花费49.95美元的共享软件,它提供了友好界面的编程编辑器,支持语法高亮,代码折叠和宏,以及一大堆其他的功能,内置了对于HTML、PHP和JavaScript等语法的支持,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。因为收费它的流行程度不及以上两款软件。但是用它编辑十六进制时非常好用。另外在国内是否收费对我们影响不大:)

Sublime Text

Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。它是一款收费软件,但是可以无限期试用,它是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统,Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。它目前非常流行的一款编辑器,特别是前端开发,基本成了标配

vim

im是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。目前Vim已经有各主流系统的版本,但因为学习入门难度比较大,因此在windows平台一直没有流行起来。但是在类Unix系统非常流行。尽管vim较vi已经改良了不少,但是初次使用还是会一头雾水,不知如何操作,所以学习vim要首先过2关。第一关是理解vim的设计思路,vim设计之初就是整个文本编辑都用键盘而非鼠标来完成,键盘上几乎每个键都有固定的用法。第二关是命令关,vim有过百条命令对应编辑的需要,如果能熟练使用vim这些命令,编辑速度会比鼠标要快很多

Eclipse IDE

ava 初学者为了能更好的掌握 Java 代码的编写,我们一般会选用一款高级记事本类的工具作为开发工具, 而实际项目开发时,更多的还是选用集成 IDE 做为开发工具,比如当下最流行的两款工具:Eclipse、IDEA
Eclipse 优点:
能提供关于代码完成、重构和语法检查这些急需的帮助。
能提供 JDT 的一系列工具,包括各种插件工具来帮助开发各种 Java 应用。
允许开发人员使用不同的语言支持,如它也可以提供 C/C++ 和 PHP 的 IDE。这使得它成为了 Java 开发的一个一站式资源。
Eclipse 是免费的,这点很重要,所以大多公司里依然是使用 Eclipse 这款 IDE,而且它良好的性能,也在市场占着不小的比重。

Eclipse 缺点:
版本间不兼容,特别是插件,在一个版本下可以很好工作,在另一个版本下就完全无法工作,就算两个版本的版本号只有微小的差异。
与 JDK 捆绑过于紧密。当 JDK 新的版本出来后,Eclipse 一般要滞后很长一段时间才有一个新版本支持新的 JDK,然后等各个插件能在新版本的 Eclipse 下使用又要过很长时间。

掌握Eclipse使用

Eclipse对新手非常友好,因为它是集成 IDE(开发环境) 所谓集成 IDE
就是把代码的编写、调试、编译、执行都集成到一个工具中了,不用单独在为每个环节使用工具

  1. 安装Eclipse开发工具,官网
    https://www.eclipse.org/downloads/

  2. 启动Eclipse开发工具,提示选择工作空间(Workspace)

  3. Eclipse工作台

    Promblems:问题视图 显示项目的一些警告和错误
    Javadoc:文档视图 用来编写代码的区域
    Declaration:声明视图
    Console:控制台视图显示程序运行时的输出信息、异常和错误
    Package Explorer:包管理视图
    File上面是标题栏
    File:菜单栏
    File下面是工具栏

  4. Eclipse透视图

    透视图是比视图更大的一种概念,用于定义工作窗口中的视图的初始设置和布局
    tip: 如果不小心点错了透视图,可以通过【Window】>[Show View]选择想打开的Console
    如果视图多可以在Window>Perspective>ReserPerspective(重置视图)

使用Eclipse进行程序并发

  1. 创建Java项目

  2. 再项目下建包

  3. 创建java类
    在包下创建class

  4. 编写程序代码并运行程序

说明: 在创建类时可以勾选打包这个

自动打包代码第五行

感谢各位观看!!!!!

Java入门学习笔记(一)相关推荐

  1. Java入门学习笔记——郝斌(一)概述及面向对象

    Java入门学习笔记--郝斌 1.Java概述 java的起源和发展 java的特点 java的应用领域 java学习目标 环境变量的设置 为什么要设置path? path的设置 有关classpat ...

  2. Java入门学习笔记[狂神说Java]

    写在前面: 本文根据B站狂神说Java 与菜鸟教程 整理而来,仅供个人学习使用,如有侵权,请联系删除. 文章目录 IDEA使用 Java基础01:注释 Java基础02:数据类型 Java基础03:类 ...

  3. java入门学习笔记(二)—— Eclipse入门学习之快捷键、java语言基础知识之各类关键字及其用法简析

    一.Eclipse入门学习 1. 快捷键 对于一个编辑器,快捷键必不可少,是十分好用且有效的工具. 对于一个初学者,首先掌握了如下快捷键. (很多通用的快捷键不多说) Ctrl + / -- 注释当前 ...

  4. Java入门学习笔记4——运行报错及解决方法

    对E:\Java学习\JavaProjects\JavaSE\Hello.java路径下的Hello.java进行编译和运行.结果编译正常,运行报错. 排除一系列可能报错原因: 环境变量已配置成功 D ...

  5. JAVA入门-学习笔记

    笔记整理来源 B站UP主狂神说 https://www.bilibili.com/video/BV12J41137hu?p=20 Java诞生 1972年C语言诞生: 贴近硬件.运行极快.效率极高: ...

  6. Java入门学习笔记9——数据类型(上)

    目录 一.数据类型相关基础 1.1 数据类型作用 1.2 数据类型在java语言中分类 1.3 计算机存储单位 1.4各数据类型取值范围 1.5 字符编码 1.5.1 字符编码由来 1.5.2 什么是 ...

  7. Java入门学习笔记之变量与计算

    计算 变量与计算 hello world System.out.println("hello world"); 'alt + / ' 读用户输入 Scanner in = new ...

  8. Java快速入门学习笔记9 | Java语言中的方法

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  9. Java快速入门学习笔记8 | Java语言中的数组

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

最新文章

  1. Java语言的基础知识9
  2. 37张图详解MAC地址、以太网、二层转发、VLAN
  3. LYNC 和 Exchange 整合手记之R2 如何下如何安装补丁
  4. jQuery 事件绑定
  5. SQL中的Exist操作
  6. 在服务器上使用第三方独立组件对Word/Excel进行编程
  7. 【ArcGIS Pro微课1000例】0007:ArcGIS Pro 2.5质量检查:拓扑创建与编辑案例教程
  8. Opencv 图像增强算法 图像检测结果及代码
  9. SSE图像算法优化系列二十二:优化龚元浩博士的曲率滤波算法,达到约1000 MPixels/Sec的单次迭代速度...
  10. 请注意,我们要谈谈神经网络的注意机制和使用方法
  11. Hi3516E V200功能介绍
  12. matlab命令窗口双大于号不显示了 回车命令不管用了,怎么改才能恢复
  13. NPOI实现Word表格删除一行
  14. 行走在数据库上的行癫(四)
  15. python获取图片像素点_Python 处理图片像素点的实例
  16. ovs-docker实现容器网络vlan隔离
  17. python画三维折线图_使用Python的matplotlib画折线图,柱状图,三维图
  18. 2015.09.07 活着就是一种召唤——《活着》余华
  19. android模拟遥控器home点击
  20. 当神经网络的模型还不如决策树的效果好

热门文章

  1. 泛微OA调用SAP接口
  2. Pytorch教程入门系列3
  3. 函数柯里化的作用一:参数复用(正则匹配案例)
  4. 微信公众号基本配置时出现:“参数错误,请重新填写“ 解决方法
  5. Framework7 Vue 教程 入门 学习
  6. navicat连接远程mysql数据库
  7. 恩智浦智能车核心板LPC54606PCB原理图
  8. 【C语言】调试方法和技巧详解
  9. MemTest内存软件测试介绍说明-2
  10. Android通过OpenSL ES播放音频套路详解