首页 > 编程语言 >Java笔记

Java笔记

时间:2022-10-18 07:00:24浏览次数:67  
标签:java JDK System 笔记 println Java out

一、Java简述

1. Java历史

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

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

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

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

image


2. 为什么要使用Java?

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

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

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

image


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程序的地方);

image

image

JDK的发展史:

image

  • 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

image

image

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

image


1.3 安装JDK17

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

image

2、设置JDK安装路径

image

image

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


JDK目录结构:

image

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

1.4 配置环境变量

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

1、新建一个系统变量

image

变量名:  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变量中。

image

%JAVA_HOME%\bin

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


3、查看是否配置成功

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

image

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

image

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


windows命令行常用命令:

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

1.5 卸载JDK

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

image

image


1.6 编写第一个Java程序


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

image

1、开启系统扩展名

image

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

image

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 实现跨平台。

image


2. IntelliJ IDEA


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

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

image

在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 + / 对代码进行注释(讲注释的时候再说)

三、Java基础语法

1. 注释


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

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

// 单行注释    快捷键:ctrl + /

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

/**
  文档注释
 */

image

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

image


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);
    }
}

image


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);
    }
}

image


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

image-20221018063323309


3.2 保留字


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


3.3 标识符


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

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

标识符的命名规则

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

一些常用规范

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

扩展:内存与硬盘

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

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

  • 硬盘便宜,内存较贵。

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

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

标签:java,JDK,System,笔记,println,Java,out
From: https://www.cnblogs.com/m987/p/16801290.html

相关文章

  • JavaScript的深拷贝和浅拷贝
    一、前言  首先,我们了解JavaScript中的数据类型主要分为:  基本数据类型:    Number、String、Boolean、null、undefined、Symbol、Bigint ......
  • Java字节码
    1.Java字节码概述1.1Java开发过程编写阶段:采用各种编辑工具,编写.java文件编译阶段:采用javac.exe对.java文件编译,产生.class文件运行阶段:采用java.exe加载.class文件......
  • javascript对象数组内元素排序
    数组内对象排序数组项是对象,需要根据数组项的某个属性对数组进行排序。注意:想往后排的,后面的-前面的  a.age-b.age,如果是从小到大排序,大的-小的letperson=[......
  • 笔记:node.js的http模块
    教程来自b站黑马程序员https://www.bilibili.com/video/BV1a34y167AZ/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click      ......
  • Java命令总结
    介绍我们在习惯使用Eclipse等集成开发工具之后,对Java的命令行还知道多少呢?还会不会使用命令行来打包一个jar文件呢?也许你会说,都已经有了集成开发工具了,为什么还要学习命令......
  • Java之Socket
    介绍网络编程是Java中很重要的一块,实现的是应用层的网络协议。本文介绍如何使用socket开发,包括有TCP和UDP的代码实现。​​关于UDP广播相关的内容,可以点击这里查看另外一篇......
  • JavaScript输入输出语句propmt、alert、console
    propmt是一个输入语句它的返回结果是你输入的内容,无论输入什么内容返回结果的数据类型都是字符串类型。alert是一个弹框输出console是控制台输出 下面代码的意思是输......
  • GroupViT: Semantic Segmentation Emerges from Text Supervision论文阅读笔记
    摘要在端到端深度学习系统中,图像区域的分组通常是通过像素级识别标签的自上而下的监督而隐式发生。在本文中,作者将分组机制带回深度网络中,这使得语义分割可以在只有文本信......
  • 基于JAVA的房地产销售系统设计与实现-计算机毕业设计源码+LW文档
    计算机科学与互联网日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。当今房地产业界日愈火暴,通常的信息了解和传播方式越来越......
  • 基于java校园德育活动预约和评分管理系统的设计与实现-计算机毕业设计源码+LW文档
    校园德育活动预约和评分管理系统的设计与实现摘要:本校园德育活动预约和评分管理系统是针对目前校园德育活动预约和评分管理的实际需求,从实际工作出发,对过去的校园德育活动......