一、Java简述


1. Java历史

  • Java是美国Sun公司在1995年推出的一门计算机高级编程语言(更接近人类自然语言)。

  • 它初期叫做Oak(橡树),但是注册商标的时候发现已经有人注册了,后来就改成 Java (印度尼西亚爪哇岛)。

  • Java之父:詹姆斯·高斯林 (James Gosling)。

  • 在2009年,Sun公司被Oracle甲骨文以74亿美元收购,这就意味着Java属于Oracle了。

2. 为什么要使用Java?

  • 世界上最流行的编程语言之一,在国内使用最为广泛的编程语言。

  • 可移植性(跨平台)、安全可靠、性能较好。

  • 开发社区最完善、功能最丰富。

3. Java能做什么?

  • 桌面端应用开发,例如 Eclipse、IDEA等等

  • 移动端应用开发,例如 Android、医疗设备等

  • 大数据开发,例如 Hadoop

  • 企业级应用开发,例如 微服务、大型互联网应用(京东、天猫等)

  • 游戏开发,例如 我的世界

  • 物联网(用python或者c/c++用的多)

  • 爬虫

4. Java的技术体系


Java SE(Java Standard Edition):Java标准版,Java技术的基础与核心。

Java EE(Java Enterprise Ediiton):Java企业版,企业级应用开发的一套解决方案。

Java ME(Java Micro Edition)Java小型版,针对移动设备应用的解决方案。

Java主要擅长分布式系统开发、大数据开发、Android应用开发三个方向,学好Java有饭吃;

根据市场的就业形势,一般人都会选择分布式系统开发(Web应用开发),然后积累2-3年以上工作经验以后可以转向大数据开发方向。

二、Java环境搭建


1. JDK

JDK(Java开发工具包)是学Java的第一步,不管是学习Java编程,还是要搭建JavaWeb开发环境,或者是搞Android开发环境都离不开它。

1.1 JDK介绍

  • JDK (Java Development Kit) Java开发工具包,JDK包含Java开发工具(javac,java,javadoc,jar等)以及JRE
  • JRE (Java Runtime Environment) Java运行环境,JRE包含了开发Java程序时需要的核心类库(时间日期、集合、并发、IO、网络、反射等) 和 JVM(Java虚拟机,真正运行Java程序的地方);

JDK的发展史:

  • LTS(long-term support):长期支持版,有JDK8、JDK11、JDK17。
  • 2004年9月发布了JDK5,之后所有的新版本都以JDK xxx方式命名,新增了自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach循环);改进了Java的内存模型(Java Memory Model,JMM);提供了java.util.concurrent并发包;Windows 9x操作系统的最后一个JDK版本。
  • 2014年3月发布了JDK8,新增了Lambda表达式、函数式接口、新的日期时间API、Stream流等等;内置Nashorn JavaScript、彻底移除HotSpot的永久代。
  • 2018年9月发布了JDk11,技术:ZGC革命性的垃圾收集器、将类型推断加入Lambda语法。

1.2 下载JDK

本文以JDK17下载为例

下载地址:https://www.oracle.com/java/

Java历史版本下载地址:https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html

下载成功后本地会出现一个jdk-17_windows-x64_bin.exe文件。

1.3 安装JDK17

1、双击JDK的安装包(如:jdk-17_windows-x64_bin.exe),进入安装界面,然后一直下一步即可。

2、设置JDK安装路径

注:JDK17没有安装JRE环节,而且新版JDK会自动配置PATH变量(但是不能满足我们使用,需要手动配置一下)。

JDK目录结构:

  • bin目录 :包含一些用于开发Java程序的工具(如 javac.exe、java.exe、javap.exe、jar.exe等)。
  • conf 目录:里面存放一些配置文件 。
  • include目录:存放一些平台特定的头文件。
  • jmods目录:存放各种模块。
  • legal目录:存放各种模块的授权文档。
  • lib目录:包含开发Java程序所使用的类库文件。

1.4 配置环境变量

鼠标右键 “我的电脑”—>“属性”—>“高级”—>“环境变量”。

1、新建一个系统变量

变量名:  JAVA_HOME
变量值:  D:\Program Files\Environment\Java\jdk-17.0.4.1(jdk所在目录)

为什么需要配置JAVA_HOME?

  • JAVA_HOME本质就是JDK的绝对路径D:\Program Files\Environment\Java\jdk1.8.0_201,方便在命令行窗口的任意目录启动程序。
  • 后期Java开发会使用很多工具和组件(比如 Tomcat、Maven、Jmeter等),他们会依赖这个JAVA_HOME目录,如果没有的话这些程序会无法运行。

2、然后将%JAVA_HOME%\bin 填加到系统变量的Path变量中。

%JAVA_HOME%\bin

之后一直点【确定】来保存我们的配置。

3、查看是否配置成功

按快捷键win+r打开运行窗口,然后输入cmd并回车打开指令控制台:

在命令提示符窗口中输入javac -version或者java -version:

ok出现上述结果,表示我们已经配置成功了。

windows命令行常用命令:

cls     # 清屏
盘符:    # 盘符后面加冒号,功能:切换盘符
cd      # 切换目录
dir     # 查看当前目录下有哪些文件和文件夹

1.5 卸载JDK

JDK和我们日常用的软件卸载方式类似,卸载后删除文件和环境变量即可。

1.6 编写第一个Java程序


开发Java程序的三个步骤:编写代码、编译代码、运行代码。

1、开启系统扩展名

2、在桌面空白处新建一个文本文档文件,并命名为:HelloWord.java。

3、编辑文本文件:(并保证类名与文件名一致)

public class HelloWord {//main方法是程序执行的入口public static void main(String[] args){System.out.println("hello Java!!!");}
}

4、Ctrl + S保存文件

5、按快捷键win+r然后输入cmd回车打开命令行窗口

6、javac (java文件的绝对路径 ) 编译 ,例如:javac HelloWord.java

7、会在原java文件的位置生成一个HelloWorld.class (字节码文件)

8、 java xxx (执行目标文件) ,例如:java HelloWorld

执行过程:Hello.java(源文件) -javac.exe(编译器)-> Hello.class字节码文件 -java.exe(执行/翻译)-> JVM(java虚拟机) -(解释成机器码并运行) --> 操作系统。

1.7 Java 的跨平台、工作原理


跨平台:一次编译、到处运行。

原理:Java 源代码经过编译会生成字节码文件,最后由JVM(Java 虚拟机)来运行,JDK为我们针对不同操作系统平台提供了不同的Java虚拟机,所以Java程序借助JVM 实现跨平台。

2. IntelliJ IDEA


IDEA(全称:IntelliJ IDEA)是 JetBrains 公司的产品,IntelliJ IDEA 在业界被公认为最好用的 Java 集成开发工具,结合智能编码辅助与符合人体工程学的设计,让开发不仅高效,更成为一种享受。

IDEA相关教程:https://blog.csdn.net/qq_46921028/article/details/124209921

在IDEA中开发流程:

  • 创建一个工程、项目(project):方便管理多个模块。
  • 创建模块(module):方便管理多个包。
  • 创建包(package):方便管理多个类。
  • 创建类(class):封装我们编写的代码。

IDEA常用快捷键:

快捷键 功能效果
main/psvm、sout、… 快速键入相关代码
Ctrl + D 复制当前行数据到下一行
Ctrl + Y 删除所在行,建议用Ctrl + X
Ctrl + ALT + L 格式化代码
ALT + SHIFT + ↑ , ALT + SHIFT + ↓ 上下移动当前代码
Shift + Enter 光标在当前行的任意位置换行
Ctrl + / , Ctrl + Shift + / 对代码进行注释(讲注释的时候再说)
Ctrl + ALT + M 将选中的部分代码块抽取成方法

三、Java基础语法


1. 注释


注释用来对代码进行解释说明,被注释的内容会被编译器忽略掉。

Java中注释有三种写法:单行注释、多行注释、文档注释

// 单行注释    快捷键:ctrl + //*多行注释*/    多行注释也可以写在方法的参数列表中 ,  快捷键:ctrl + shift + //**文档注释*/

查看编译后的class字节码文件(发现注释已经被被编译器忽略掉了):

2. 变量


1、字面量

在Java程序中直接写出来的数据叫字面量/常量/直接量。

字面量的作用:告诉我们常见数据在程序中的书写格式。

字面量分类:

常用数据 生活中的数据 程序中的写法 说明
整数 -128,127 -128,127 写法一致
小数 3.14,2.718 3.14,2.718 写法一致
字符 男,女,可 ‘男’,‘女’,‘可’ 程序中必须使用单引号,有且仅能一个字符
字符串 HelloWorld “HelloWorld” 程序中必须使用双引号,内容可有可无
布尔 真、假 true、false 只有两个值: true:代表真,false: 代表假
空值 值是:null 一个特殊的值,空值
package com.baidou.literal;/*** 字面量的使用(告诉数据在程序中的书写格式)** @author 白豆五* @version 2022/10/17 17:06* @since JDK17*/
public class LiteralDemo {public static void main(String[] args) {// 1、整数System.out.println(100);// 2、小数System.out.println(3.14);// 3、字符  (要求:英文单引号,有且只有一个字符)System.out.println('男');// 转义字符:\n  换行//         \t  制表位,相当于一个tab缩进System.out.println('\n'); //换行System.out.println('a');// 4、字符串System.out.println("good good study\n" +"day day up");// 5、空值// System.out.println(null); //不能直接输出// 6、布尔System.out.println(false);System.out.println(true);}
}

2、变量

  • 变量可以理解为存储数据的容器,它里面存储的数据是可以变化的。

  • 使用的时候,系统会自动为变量在内存中开辟一个区域,然后我们只需要通过变量名就可以获取它里面的数据啦。

3、变量定义的格式

  • 数据类型 变量名称 = 初始值;
  • 数据类型:强制限制盒子中存储数据的形式。例如: int ( 整数类型)、double(小数类型)等
  • 变量名称:取名字(首字母小写),之后通过变量名我们可以访问它对应的数据。
  • 初始值:存的初始数据。
package com.baidou.variable;
/*** 变量的定义与使用** @author 白豆五* @version 2022/10/17 17:52* @since JDK17*/
public class VariableDemo {public static void main(String[] args) {// 定义整数变量int age = 19;System.out.println(age);age = 11;System.out.println(age);age = age - 7;System.out.println(age);System.out.println("===========");// 模拟收红包和发红包// 定义红包金额double money = 100;// 转账money = money - 5.2;System.out.println("转账后剩余:" + money);// 收款money = money + 50.2;System.out.println("收款后剩余:" + money);}
}

4、变量使用的注意事项

  • 变量要先声明再使用;
  • 同一个作用域范围内的变量不能重复定义;
  • 变量只能在定义的作用域范围内使用;
  • 什么类型的变量只能存储什么类型的数据;
  • 变量定义的时候可以没有初始值,但是使用的时候必须给初始值。

5、按照声明的位置不同,变量可分为两种:

  • 在类内方法体外声明的变量叫做成员变量(也叫做属性);
  • 在方法体内声明的变量叫做局部变量

6、常见的计算机信息存储单位

  • 位(bit) 计算机信息存储最小单位,位只有两种形式0和1(因为计算机只有高低电压两种状态,所以就用0和1表示)
  • 字节(Byte) 计算机的基本存储单位,1个字节是由8个比特位组成的, 1Byte=8bit (也叫做比特/比特位)
  • 千字节(KB) 1KB=1024B
  • 兆字节(MB)1MB=1024KB
  • 吉字节(GB) 1GB=1024MB
  • 太字节(TB) 1TB=1024GB

3. 关键字、保留字、标识符

3.1 关键字


  • 关键字就是被Java语言赋予了特殊的含义,用作特殊用途的单词。(是程序员和编译器的一个约定)
  • 关键字的特点就是单词都是小写字母。

Java关键字介绍:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

3.2 保留字


保留字就是现有Java版本尚未使用,但是可能以后的版本会作为关键字使用,例如 constgoto就是Java语言中的保留字。

3.3 标识符


标识符:在写Java程序的时候凡是需要取名字的地方就是标识符。

如:项目名、包名、类名(如类名、接口名、枚举名、注解名)、方法名、变量名和常量名。

标识符的命名规则

  • 标识符由字母、数字、下划线_、美元符$、中文字符组成。
  • 不能用数字开头,推荐以字母开头。
  • 不能把java关键字和保留字作为标识符。如:break、case、if、char、int、for等等
  • 标识符对大小写敏感。
  • 各操作系统存在文件名长度限制。 (名字不要取太长)

一些常用规范

  • 项目、包:小写。
  • 类、抽象类、接口、注解:大驼峰命名法,如HelloWorld、@Data。
  • 变量、方法:小驼峰命名法 ,如 userName、getUserName()。
  • 常量、枚举:大写(多个单词之间用下划线_分割),如 USER_SESSION;

扩展:内存与硬盘

  • 内存是由内存芯片、电路板、金手指等部分组成的。

  • 内存存储临时数据(断电数据就会消失),硬盘存储长期数据。

  • 硬盘便宜,内存较贵。

  • 硬盘存储速度慢,内存存储速度快。

「突发小技巧」如果你的笔记本受卡槽的限制、或者主板镶嵌的原因无法扩展内存,可以通过修改虚拟内存手段来缓解部分内存压力。(缺点:容易损伤硬盘)

【一】Java快速入门相关推荐

  1. Java快速入门-01-基础篇

    Java快速入门-01-基础篇 如果基础不好或者想学的很细,请参看:菜鸟教程-JAVA 本笔记适合快速学习,文章后面也会包含一些常见面试问题,记住快捷键操作,一些内容我就不转载了,直接附上链接,嘻嘻 ...

  2. apache thrift_使用Java快速入门的Apache Thrift

    apache thrift Apache Thrift是由facebook创建的RPC框架,现在它是一个Apache项目. Thrift允许您在不依赖语言的定义文件中定义数据类型和服务接口. 该定义文 ...

  3. 使用Java快速入门的Apache Thrift

    Apache Thrift是由facebook创建的RPC框架,现在它是一个Apache项目. Thrift可让您在不依赖语言的定义文件中定义数据类型和服务接口. 该定义文件用作编译器的输入,以生成用 ...

  4. ACM中java快速入门

    2019独角兽企业重金招聘Python工程师标准>>> ACM中java快速入门 附: Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特 ...

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

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

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

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

  7. Java快速入门学习笔记7 | Java语言中的类与对象

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

  8. Java快速入门学习笔记6 | Java语言中的for循环语句

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

  9. Java快速入门学习笔记5 | Java语言中的while循环语句

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

  10. Java快速入门学习笔记4 | Java语言中的if条件语句

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

最新文章

  1. springboot开启jms服务监控jvm运行情况
  2. JMeter 报告监听器导入.jtl结果文件报错解决方案
  3. java web导入tomcat_记一次在服务器上导入javaweb 项目的经历---tomcat服务器-Go语言中文社区...
  4. 【ElasticSearch】Es 启动流程 初始化流程 源码分析
  5. 输出halloword
  6. 线性表的顺序存储结构和链式存储结构的比较
  7. 计算机的硬盘有几个分区,电脑硬盘分几个区合适?电脑硬盘分区小窍门
  8. OpenGL 反锯齿的一些措施
  9. Python小游戏:猜大小
  10. 虚拟机如何安装优麒麟19.10
  11. python xposed_Xposed插件开发进阶篇
  12. TaWRKY19/61/82激活糖转运蛋白TaSTP3从而增强小麦条锈病敏感性
  13. ACM之Java输入输出
  14. 三维目标检测算法汇总学习笔记
  15. mysql data dll_mysql.data.dll官方下载
  16. 面向火炮火控系统的嵌入式软件测试平台
  17. redis主从结构,主库宕机
  18. SpringBoot的参数校验器 - Validator
  19. 25岁之后,你需要培养的12项时间管理习惯
  20. linux p4 环境配置,P4RUNTIME实验环境搭建

热门文章

  1. json-bigint
  2. 79、多边形点边关系、求外包
  3. 新里程,新风向!纽莱伊美出席第五届中国化妆品国际高峰论坛,与行业大咖畅享护肤新体验
  4. 获取千牛聊天对象-模拟鼠标操作1
  5. uniapp 通过模拟器运行,一直白屏 代码正常
  6. Java中的四种引用
  7. 51NOD 1417 天堂里的游戏 博弈 (数学题)
  8. caktus ai最适合学生的AI助手(有免费额度)
  9. HTML5如何实现视频直播功能
  10. [安装之6] Dell灵越 5559笔记本安装固态硬盘 BIOS设置