《Java 核心技术·卷I (第11版)》笔记

文章目录

  • 第1章 Java程序设计概述
    • 1.1 Java程序设计平台
    • 1.2 Java “白皮书” 的关键术语
      • 1.2.1 简单性
      • 1.2.2 面向对象
      • 1.2.3 分布式
      • 1.2.4 健壮性
      • 1.2.5 安全性
      • 1.2.6 体系结构中立
      • 1.2.7 可移植性
      • 1.2.8 解释型
      • 1.2.9 高性能
      • 1.2.10 多线程
      • 1.2.11 动态性
    • 1.3 Java applet 与 Internet
    • 1.4 Java 发展简史
    • 1.5 关于Java的常见误解
  • 第2章 Java程序设计环境
    • 2.1 安装Java开发工具包
      • 2.1.1 下载JDK
    • 2.1.2 设置JDK
    • 2.1.3 安装库源文件和文档
    • 2.2 使用命令行工具
    • 2.3 使用集成开发环境
    • 2.4 JShell
  • 第3章 Java的基本程序设计结构
    • 3.1 一个简单的Java应用程序
    • 3.2 注释
    • 3.1
    • 3.1
    • 3.1
    • 3.1
    • 3.1
    • 3.1
    • 3.1
    • 3.1

第1章 Java程序设计概述

第1章概述Java与其他程序设计语言不同的功能。解释这种语言的设计初衷,以及在哪些方面达到了预期。然后,简要叙述Java诞生和发展的历史。

1.1 Java程序设计平台

Java是一个完整的平台,有一个庞大的库,以及一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。

1.2 Java “白皮书” 的关键术语

1.2.1 简单性

Java语法是C++语法的一个“纯净”版本。

1.2.2 面向对象

面向对象设计。

1.2.3 分布式

Java程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。

1.2.4 健壮性

Java非常强调进行早期的问题检测(编译检测),以及后期动态的(运行时)检测。

1.2.5 安全性

从一开始,Java就设计成能够防范各种攻击,其中包括:

  • 运行时堆栈溢出。
  • 破坏自己的进程空间之外的内存。
  • 未经授权读取问文件。

1.2.6 体系结构中立

编译器生成一个体系结构中立的目标文件格式(.class),只要有Java运行时系统,这些编译后的代码就可以在许多处理器上运行。
精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且还可以动态转换成本地机器码。
当然,解释型虚拟机指令肯定会比全速运行机器指令慢很多。不过,虚拟机可以将执行最频繁的字节码序列转换成机器码,这一过程称谓即时编译。

1.2.7 可移植性

Java中的基本类型,有固定的字节数,这消除了代码移植时的主要问题,字符串采用标准的Unicode格式存储。
Java类库也能很好的支持平台独立性。
Java API 往往也比原生的API质量更高。

1.2.8 解释型

Java 9 提供了jshell工具支持快捷的编程。

1.2.9 高性能

即时编译器可以监控哪些代码频繁执行,并优化这些代码以提高速度。可以与传统的编译器相媲美,甚至超过。

1.2.10 多线程

多线程可以带来更快的交互响应和实时行为。

1.2.11 动态性

从很多方面看,Java与C或C++相比更加具有动态性,它能够适应不断发展的环境。

1.3 Java applet 与 Internet

用户从Internet下载Java字节码,并在自己的机器上运行。在网页中运行的Java程序称为applet。

1.4 Java 发展简史

不管是一门编程语言、还是一个人的的成功史都不是那么容易的!
在这里插入图片描述

1.5 关于Java的常见误解

  1. Java将成为适用于所有平台的通用性编程语言:
    Java在服务器端编程和跨平台客户端应用领域有优势,某些领域其他语言有更出色的表现。
  2. Java是解释型的,因此对于关键性的应用程序速度太慢了:
    Java虚拟机有了即时编译器,可以与c++相媲美了。
  3. JavaScript和Java的关系:
    毫无关系。

第2章 Java程序设计环境

2.1 安装Java开发工具包

2.1.1 下载JDK

在下载前,先弄清楚Java术语:
在这里插入图片描述
在这里插入图片描述

  1. JDK和SDK是一样的,只不过SDK是Java早些版本用的称呼
  2. Java 2是为了突出JDK 1.2版本的重大改进,叫了这个名字。
  3. Java 9 之前有32位和64位两个版本,现在Oracle公司不再开发32位版本了。

官网下载路径: Oracle官网下载地址

我这里下载的是windows版的JDK 21,免安装版本。
在这里插入图片描述
将其解压到一个本地目录下,注意路径中最好不要带中文。
在这里插入图片描述

2.1.2 设置JDK

下载好后,需要将D:\software\green\jdk-21.0.1\bin添加到可执行路径中,可执行路径是操作系统查找可执行文件时所遍历的目录列表。

  • 第一步:右键 我的电脑-属性-高级系统设置-环境变量-新建系统环境变量-设置变量名、变量值

在这里插入图片描述

  • 第二步 打开Path变量,将刚刚新建的JAVA_HOME变量名添加进去

在这里插入图片描述

  • 第三步:测试下是否配置成功,win+r 输入cmd打开命令行,输入java --version命令,回车,出现JDK的版本信息说明配置成功。

在这里插入图片描述

2.1.3 安装库源文件和文档

JDK的源码文件在lib目录下,解压即可查看。
在这里插入图片描述
API文档查看:添加链接描述

在这里插入图片描述

2.2 使用命令行工具

在不使用集成开发环境之前,先试着在在命令行,编译、执行Java程序。

  1. 首先创建一个``.java`文本文件,文件内容是:
public class Test{
	public static void main(String[] args){
		System.out.println("hello world!");
	}
}

在这里插入图片描述
这个.java文件就是源文件。
2. 在源文件处,打开命令行
可以 shift + 右键 打开power shell,也可以用win + r 输入cmd进入命令行 再移动到源文件处。
在这里插入图片描述
3. 在命令行窗口,输入javac Test.java命令,将刚才创建的源文件编译成.class文件。
执行成功会发现多了一个.class文件,也叫做字节码文件,这个字节码文件就是Java虚拟机执行时需要的文件。

在这里插入图片描述
4. 编译成功后,执行命令java Test,就运行了一个程序,可以看到打印了一行"hello world!"
在这里插入图片描述

2.3 使用集成开发环境

使用命令行非常不方便,日常工作还是使用集成开发环境,如 Eclipse、IDEA、VS等等。
我现在使用的是IDEA:
添加链接描述
它有免费的社区版本,学习时使用完全够了。
收费的 Ultimate版本,功能更强大,如果你是学生、老师有购买优惠。
希望大家支持正版软件。

2.4 JShell

Java 9 提供了JShell工具,可以直接在命令行中编写、执行代码。不用在新建.java文件、编译、执行了。更加方便了,不够感觉没啥用。

第3章 Java的基本程序设计结构

之后练习的代码,我会上传到我在Gitee上的仓库 添加链接描述 。如果有需要,可以在评论留言,我将你添加为仓库成员。

3.1 一个简单的Java应用程序

3.2 注释

3.1

3.1

3.1

3.1

3.1

3.1

3.1

3.1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/247127.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线性回归在数据库中的应用

简介 今天看到微信群有人问,如何知道数据库一年的磁盘增量?如果没有研究过统计学,IT人员对于这个问题就只能靠经验了去断定了。没经验的往往都是回复扩容越大越好。当然未来的事情我们是无法预料的。本博主就通过简单的线性回归做一个计算&am…

XS9922B-国产cvi协议,满足国内车载视频传输领域国产化降本需求

XS9922B 是一款 4 通道模拟复合视频解码芯片,支持 HDCCTV 高清协议和 CVBS 标 清协议,视频制式支持 720P/1080P 高清制式和 960H/D1 标清制式。芯片将接收到的高清 模拟复合视频信号经过模数转化,视频解码以及 2D 图像处理之后,转…

CVE-2023-49371|RuoYi 若依后台管理系统存在SQL注入漏洞

0x00 前言 RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安…

相信99%的朋友都没有注意到的数据库时间类型的问题

文章目录 创建表SQL实例小测试知识点小测试可以怎样处理只有查询有问题吗?MySQL时间 很多时候,程序运行起来没有问题,并不代表程序就精确,例如创建时间多一秒少一秒这种事情,很多时候是没有人注意到这个问题。 当然&am…

C++/语法@初始化列表

目录 初始化列表特征疑惑区别必在初始化列表中初始化的三种成员变量1、引用成员变量程序例子:运行结果: 2、const成员变量程序例子:运行结果: 3、自定义类型成员(没有默认构造函数的类)程序例子&#xff1a…

【LeetCode:2132. 用邮票贴满网格图 | 二维前缀和 + 二维差分和】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【docker 】Dockerfile指令学习

学习文档地址 上篇文章:【docker 】基于Dockerfile创建镜像 Dockerfile指令文档地址 .dockerignore 文件 Dockerfile指令 常见的指令 Dockerfile 指令说明FROM指定基础镜像,用于后续的指令构建。MAINTAINER指定Dockerfile的作者/维护者。&#xff…

伦敦金投资者的本质其实是风险管理者

长期在市场中可以稳定盈利的投资者,他们的秘密是什么?很多人以为,肯定是他有别人所没有的交易策略。其实并不是,交易技术固然很重要,但在持续盈利的问题上,技术所占的重要性是次要的,而主要的是…

Django 模型操作 - 多对多(九)

一、多对多关联管理器(对象调用) 前提:多对多(双向均有关联管理器)一对多(只有多的那个类的对象有关联管理器,即反向才有) 语法格式:正向:属性名反向:小写类名加 _set注意…

H3C ER G2系列路由器信息泄露漏洞

H3C ER G2系列路由器信息泄露漏洞 免责声明漏洞描述漏洞影响漏洞危害漏洞页面漏洞复现1. 构造poc2. 发生数据包,获取密码3. 登录系统 免责声明 仅用于技术交流,目的是向相关安全人员展示漏洞利用方式,以便更好地提高网络安全意识和技术水平。 任何人不得利用该文章…

详解—【C++】lambda表达式

目录 前言 一、lambda表达式 二、lambda表达式语法 2.1. lambda表达式各部分说明 2.2. 捕获列表说明 三、函数对象与lambda表达式 前言 在C98中&#xff0c;如果想要对一个数据集合中的元素进行排序&#xff0c;可以使用std::sort方法。 #include <algorithm> #i…

Java EE 多线程之多线程案例

文章目录 1. 多线程案例1.1 单例模式1.1.1 饿汉模式1.1.2 懒汉模式1.1.3 多线程下的单例模式 1.2 阻塞队列1.2.1 阻塞队列定义1.2.2 生产者消费者模型的意义1.2.4 标准库中的阻塞队列1.2.5 实现阻塞队列1.2.6 用阻塞队列实现生产者消费者模型 1.3 实现定时器1.3.1 标准库中的定…

V2X在做什么?连接未来智能出行的车联网(上)

来源&#xff1a;德思特测试测量 德思特分享丨V2X在做什么&#xff1f;连接未来智能出行的车联网&#xff08;上&#xff09; 原文链接&#xff1a;德思特分享 | V2X在做什么&#xff1f;连接未来智能出行的车联网&#xff08;上&#xff09; 欢迎关注虹科&#xff0c;为您提…

美易官方:零售销售数据提振信心

美易全球投资中心副总裁Kenny Jolin表示全球股市在经历了动荡之后逐渐恢复了稳定。最近&#xff0c;美国股市表现强劲&#xff0c;连续六天上涨&#xff0c;道琼斯指数也创下了新高。这一趋势不仅反映了投资者信心的恢复&#xff0c;也表明了全球经济正在逐渐复苏。 他说&#…

如何在Centos 7环境下安装MySQL并登录

目录 先获取MySQL官方yum源 然后正常使用yum命令下载mysql即可完成MySQL的下载 使用mysql客户端登录mysqld服务端 能够登录mysql客户端后&#xff0c;我们最后还需要做一点配置 先获取MySQL官方yum源&#xff08;包括对yum源的介绍&#xff09; 介绍一下yum源 yum源就是一…

文献管理器Zotero使用WebDAV结合内网穿透实现公网环境跨平台同步文献笔记

文章目录 一、Zotero安装教程二、群晖NAS WebDAV设置三、Zotero设置四、使用公网地址同步Zotero文献库五、使用永久固定公网地址同步Zotero文献库 Zotero 是一款全能型 文献管理器,可以 存储、管理和引用文献&#xff0c;不但免费&#xff0c;功能还很强大实用。 ​ Zotero 支…

net实践记录

文章目录 前言是否使用继承快捷输入 实体&#xff1b;引用class&#xff0c;提示有保护性System.NullReferenceException:“未将对象引用设置到对象的实例。” 总结 前言 记录使用.net 项目开发过程基础问题记录&#xff0c;便于快速回顾与查询&#xff1b; 是否使用继承 快捷…

关于git clone速度极慢的解决方法

&#xff01;&#xff01;&#xff01;&#xff01;前提条件&#xff1a;得有一个可靠且稳定的梯子&#xff0c;如果没有接下来的就不用看了 前言&#xff1a;我在写这篇文章前&#xff0c;也搜索过很多相关git clone速度很慢的解决方法&#xff0c;但是很多很麻烦&#xff0c…

Maven环境搭建及配置

Maven环境搭建及配置 1.下载部署 官方网站下载正式版的Maven文件,打开bin目录&#xff0c;复制路径然后去环境变量中的path下配置环境变量&#xff0c; 如果只有一个用户只需要在上面path配置复制的路径,当然也可以直接在下面配置,下面配置默认给所有用户都配置 设置完成打开控…

垃圾收集器及内存分配

目录 垃圾收集器种类 HotSpot虚拟机所包含的收集器 垃圾收集器部分源码 垃圾收集器后台日志参数说明与配对关系 1、串行垃圾收集器 串行垃圾收集器运行示意图 1&#xff09;、编写测试代码 2&#xff09;、设置垃圾回收为串行收集器 3&#xff09;、启动程序&#xff…