javase开发工具包中的什么命令负责运行应用程序_开始第一篇(JavaSE)基础篇

# 学习编程为了什么?学习编程有什么好处?学习编程不知道怎么学?

1.挣钱,兴趣,改变世界,解放双手(看个人)

2.学编程的人逻辑思维能力很强 ,无论做什么事情 没有逻辑思维是不行的

3.无论学习什么技能和知识 都是一步一步来的,没有一口吃成一个胖子的,学习编程一样 (实现一个功能都是一步一步实现的)

如何高效学习?

这篇博客写的很不错思路很清晰/值得刚学习看看

如何高效学习 · 语雀​www.yuque.com
3eb1b9746ebc67ca83d7dffe98811669.png

给大家看一下我总结Java工程师知识图谱

8a482e3c75a6adfe5782644ae727882c.png

Java简介和配置

一:java概述:

1991 年Sun公司的James Gosling(詹姆斯·高斯林)等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;

1994年将Oak语言更名为Java;

Java的三种技术架构:

JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;

JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;

JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;

1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。

2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。

3,配置环境变量:让java jdkbin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。

环境变量的配置:
1):永久配置方式:JAVA_HOME=%安装路径%Javajdk path=%JAVA_HOME%bin
2):临时配置方式:set path=%path%;C:Program FilesJavajdkbin

特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。

classpath的配置:
1):永久配置方式:classpath=.;c:;e:
2):临时配置方式:set classpath=.;c:;e:

注意:在定义classpath环境变量时,需要注意的情况

如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;

如果指定了classpath,那么会在指定的目录下查找要运行的类文件。

还会在当前目录找吗?两种情况:

1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。
2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。
一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。

4,javac命令和java命令做什么事情呢?

要知道java是分两部分的:一个是编译,一个是运行。javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.
一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.

基础语法

JavaSE(基础)_XIXNGM的博客-CSDN博客​blog.csdn.net
fdbb2b3548446794437089126a45792b.png

面向对象

面向对象笔记 ------Seven​blog.csdn.net
fdbb2b3548446794437089126a45792b.png

一、Java基础结构图

Java到底学什么?很多人可以刚学完Java时完全不知道Java的结构是怎样的,导致学习的知识点零星、散落,这也是为什么明明很基础的内容,但是一段时间之后自己却想不起来是怎么写的。没有梳理知识的脉络,将所学打通,融汇于一处。

281b0403a595048d375f65eb56ff62c6.png
这些是必会的【重点!】【重点!】【重点!】

二、JDK,JRE与JVM

JDK相当于一个工具包,为我们提供了开发Java程序的工具。

JRE则相当于一个API,为我们提供了核心类库,以及运行环境。

JVM是Java跨平台的核心,它可将代码翻译成对应OS可以识别的机器码。

三者之间的关系:

* JVM+JRE=JDK

三、两大核心机制

-- JVM

通过JVM运行Java程序,对底层运行平台的差别进行屏蔽,使Java可以跨平台使用。

22d16dbc8f526f28bb2f5d76a2f33da6.png
  • 垃圾回收机制

与C++不同,Java中不再使用的内存空间将会自动被回收。

四、集合

首先我看们看看集合结构图

ee60289b5dcc8b0374353a2715b1abb2.png
思考一下集合数组区别?

集合和数组的区别:

648a9865be629466f88dd8f565d1367d.png

Collection集合的方法:

c28bc6545bf6c80a694bba67705359bc.png

常用集合的分类:

Collection 接口的接口 对象的集合(单列集合)
├——-List 接口:元素按进入先后有序保存,可重复
│—————-├ LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全
│—————-├ ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全
│—————-└ Vector 接口实现类 数组, 同步, 线程安全
│ ———————-└ Stack 是Vector类的实现类
└——-Set 接口: 仅接收一次,不可重复,并做内部排序
├—————-└HashSet 使用hash表(数组)存储元素
│————————└ LinkedHashSet 链表维护元素的插入次序
└ —————-TreeSet 底层实现为二叉树,元素排好序

Map 接口 键值对的集合 (双列集合)
├———Hashtable 接口实现类, 同步, 线程安全
├———HashMap 接口实现类 ,没有同步, 线程不安全-
│—————–├ LinkedHashMap 双向链表和哈希表实现
│—————–└ WeakHashMap
├ ——–TreeMap 红黑树对所有的key进行排序
└———IdentifyHashMap

这里我们是必须要会的[重点] 在开发中 list ,ArrayList,Map,HashMap 用的的比较多
Set, 数据不可重复(比如做个航班查询和添加 我们坐飞机一般都会刷身份证 而身份证是唯一的我们买票的时候输入身份证这个时候我们用HashSet 身份证号就会重复啦)

List和Set集合详解:

1.list和set的区别:

67a991251bbce6faf45bb06a7781692c.png

2.List:

(1)ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高,可以存储重复元素(2)LinkedList 底层数据结构是链表,查询慢,增删快,线程不安全,效率高,可以存储重复元素(3)Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低,可以存储重复元素

c990a4d86971baee08f36a9531892ccd.png

Map详解:

Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据,但key不能重复。所以通过指定的key就可以取出对应的value。

(1)、请注意!!!, Map 没有继承 Collection 接口, Map 提供 key 到 value 的映射,你可以通过“键”查找“值”。一个 Map 中不能包含相同的 key ,每个 key 只能映射一个 value 。 Map 接口提供 3 种集合的视图, Map 的内容可以被当作一组 key 集合,一组 value 集合,或者一组 key-value 映射。
(2)Map:

e96ba68ba4a11cd3de278065eb407300.png

(3)HashMap和HashTable的比较:

ff9f7f415e7af9ffc945368ef8e2df9e.png

(4)TreeMap:

7fd04ced11aa6092837bf7a68f1110ef.png

(5)Map的其它类:

IdentityHashMapHashMap的具体区别,IdentityHashMap使用 == 判断两个key是否相等,而HashMap使用的是equals方法比较key值。有什么区别呢?

对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址。

对于equals方法,注意:equals方法不能作用于基本数据类型的变量

如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;

诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。

基础先总结那么多:

每天总结一下自己学了什么,时间长了就会有成就感

总结:

1.Java基础语法

2.介绍Java JDK

3.环境配置

4.集合

5. 基础学的好,很重呀

喜欢就点个关注呗【反正也不要钱】

下一篇总结Web篇

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值