JDK源码学习-基础

article/2025/9/19 9:32:12

JDK源码学习


目录

基础

1. 安装

1.1 下载JDK

1.2 配置环境变量

1.3 验证

2. 简单的程序

2.1 编写代码

2.2 编译文件

2.3 执行类

3. java基本类型


基础

1. 安装

1.1 下载JDK

Java下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html

选择合适版本点击DownLoad后,在打开的页面选择Accept License Agreement,然后右键复制链接地址。

在Linux运用wget下载jdk,将复制链接填入wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" + 链接。

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/13.0.1+9/cec27d702aa74d5a8630c65ae61e4305/jdk-13.0.1_linux-x64_bin.tar.gz

通过tar命令解压至/usr/local/下

tar -zxvf jdk-13.0.1_linux-x64_bin.tar.gz -C /usr/local/

 进入/usr/local/jdk-13.0.1目录下,输入命令生成jre(jdk11后需要自行生成)

bin/jlink --module-path jmods --add-modules java.desktop --output jre

1.2 配置环境变量

vi /etc/profile

添加以下配置,用于java环境变量配置

#java environment
export JAVA_HOME=/usr/local/jdk-13.0.1
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

添加完后,执行命令将配置生效

source /etc/profile

1.3 验证

java -version

若出现版本提示,则说明安装无误。

2. 简单的程序

2.1 编写代码

生成Hello.java文件

vi Hello.java

代码如下

public class Hello {public static void main(String[] args) {System.out.println("Hello World");}
}

2.2 编译文件

执行以下命令,生成Hello.class

javac Hello.java 

2.3 执行类

java Hello

执行后,打印Hello World

3. java基本类型

byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。

short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。

int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。

float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。

double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

boolean:只有true和false两个取值。

char:16位,存储Unicode码,用单引号赋值。


http://chatgpt.dhexx.cn/article/dTwtHe52.shtml

相关文章

bug修复---同时触发mousedown事件和touchstart事件

这两天遇到一个bug&#xff0c;每次点击下方键盘时&#xff0c;点击一次数字&#xff0c;文本框中会出现两次重复值&#xff0c;如下所示&#xff1a; 而且console中还有以下报错信息&#xff1a; 查看项目代码&#xff0c;代码如下&#xff1a; <ul><liv-for"…

Vue下 touchstart touchend 事件无效失效解决办法

Vue下 touchstart touchend 事件无效失效解决办法 <van-button:disabled"isLoading"plaintype"info"touchstart.native.prevent"touchstart"touchend.native.prevent"touchend"style"width:40%;height: 40px;"round>对…

触屏touchstart 与 click

设计效果&#xff1a;当手指点击或触摸红框线menuList之外的部分时&#xff0c;弹框menuList消失。 问题&#xff1a;在优化触屏版的时候发现如图问题&#xff0c;当menuList弹出&#xff0c;手指触摸屏幕向下滑动时&#xff0c;menuList弹框不消失&#xff0c;只有手指点击men…

移动端事件touchstart touchmove touchend 动画事件 过渡事件

在移动端新增了touch事件&#xff0c;因为手指的行为叫做“触摸”&#xff0c; 鼠标的行为叫做“点击” 但是它仍然支持点击事件&#xff0c;有300ms的延迟&#xff0c;检测是否双击 移动端的三个事件 touchstart&#xff1a;触摸开始 绑定方式&#xff1a; dom.addEve…

微信小程序、uniapp使用touchstart和touchmove左右滑动删除。以及解决上下抖动问题。

展示效果图直接上代码 <viewv-for"(item, index) in arr":key"item.id"touchstart"touchstart($event)"touchmove"touchmove(index, $event)":class"[touch-item, item.isTouchMove ? touch-move-active : ]" ><…

html按键使用touch,HTML touchstart事件用法及代码示例

每当用户触摸HTML元素时&#xff0c;就会使用touchstart事件执行脚本。触摸特定元素时&#xff0c;如果touchstart事件与之关联&#xff0c;则可以使用它触发javascript函数。 注意&#xff1a;touchstart事件仅在触摸屏设备上起作用。 用法: object.ontouchstart myScript; 以…

JavaScript touch 事件 touchstart touchmove touchend

JavaScript touch 事件 touchstart touchmove touchend MDN 官方文档&#xff1a; https://developer.mozilla.org/en-US/docs/Web/API/Touch_events 一、touch 事件有哪些 页面中的 touch 事件一般在移动端使用&#xff0c;pc 端是没有效果的。 touch 相关的事件有四个 touc…

触摸事件(touchstart、touchmove和touchend)

触摸事件(touch)会在用户手指放在屏幕上面的时候、在屏幕上滑动的时候或者是从屏幕上移开的时候出发。下面具体说明 touchstart事件&#xff1a;当手指触摸屏幕时候触发&#xff0c;即使已经有一个手指放在屏幕上也会触发。 touchmove事件&#xff1a;当手指在屏幕上滑动的时候…

Vue 绑定使用 touchstart touchmove touchend

今天要做一个页面div长按后触发事件&#xff0c;简单学习后实现如下&#xff1a; 先看代码&#xff1a; <template><div><div class"test" touchstart"gtouchstart()" touchmove"gtouchmove()" touchend"gtouchend()"…

H5移动端 利用touchstart 达到长按事件

一开始的没加.native ,结果长按事件不会触发, 原因是: 给vue组件绑定事件时候&#xff0c;必须加上native &#xff0c;否则会认为监听的是来自Item组件自定义的事件等同于在子组件中: 子组件内部处理click事件然后向外发送click事件: semit"dlick”.fn) //长按事件&am…

javaScript-touch事件详解(touchstart、touchmove和touchend)-滑动事件案例

HTML5中新添加了很多事件&#xff0c;但是由于他们的兼容问题不是很理想&#xff0c;应用实战性不是太强&#xff0c;所以在这里基本省略&#xff0c;咱们只分享应用广泛兼容不错的事件&#xff0c;日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件…

「移动端」touch事件,touchEvent对象

随着智能手机普及&#xff0c;有越来越多的手机网页和网页版游戏&#xff0c;手机触摸、移动、旋转等等&#xff0c;多种操作。一般电脑的人机交互靠的是鼠标&#xff0c;而手机用的就是触摸。区别有&#xff1a; PC 端一个电脑只能有一个鼠标&#xff0c;而移动端有多点触摸。…

移动端开发touchstart,touchmove,touchend事件详解使用

页面使用到了触摸事件"touchstart"&#xff0c;“touchmove”&#xff0c;“touchend”。需求&#xff1a;当你手指接触到屏幕并向左滑动时&#xff0c;被滑动的服务商信息开始向左滑动同时出现"编辑"和"停用"操作按钮。若继续用手指向右滑动&am…

C++智能指针的实现与使用(详解)

C智能指针的实现与使用(详解) 智能指针介绍 缘起 C指针的实际问题 分配内存忘记释放&#xff0c;导致内存泄漏有指针引用时释放内存&#xff0c;导致其它指针非法访问异常一些对象的声明周期难以明确 办法 首先重载运算符*、->、[]、使得一个类具有指针的操作 其次&a…

详谈智能指针

一、什么是智能指针 在讲智能指针之前我们必须先知道什么是智能指针&#xff0c;智能指针是一个类&#xff0c;是对普通指针的一个封装使得智能指针对象具有普通指针类型一样的操作。 智能指针是存储指向动态分配&#xff08;堆&#xff09;对象指针的类&#xff0c;用于生…

C++中智能指针详解

1、问题引入 在C中&#xff0c;静态内存和栈内存外&#xff0c;还有一部分内存称为堆程序用堆来存储动态分配的对象即那些在程序运行时分配的对象&#xff0c;当动态对象不再使用时&#xff0c;我们的代码必须显式的销毁它们。在C中一般使用“new”&#xff1a;在动态内存中为对…

C/C++智能指针

目录 1.1RAII(资源获取几初始化) 1.2auto_ptr 1.3unique_ptr 1.4shared_ptr 1.5weak_ptr 我们在在动态开辟空间的时候&#xff0c;malloc出来的空间如果没有进行释放&#xff0c;那么回传在内存泄漏问题。或者在malloc与free之间如果存在抛异常&#xff0c;那么还是有内存泄…

Qt 之 智能指针汇总

来源 还有其他一些&#xff0c;做了一些汇总和测试&#xff0c;就不全列了。 文章目录&#xff1a; 一、垂悬指针的问题 二、Qt中的智能指针 1、QPointer 2、QSharedPointer & QWeakPointer 3、QScopedPointer 4、其他智能指针 三、实践记录 …

智能指针用法及其使用代码详解

网络上大多有关智能指针的解析只停留于简单的字面理解&#xff0c;今天来详细解析一下三种智能指针的用法以及具体的代码。 目录 概念 RAII机制介绍 智能指针雏形 shared_ptr原理介绍 shared_ptr使用方法 unique_ptr weak_ptr 概念 智能指针不是一个指针&#xff0c;它…

C++ 智能指针

shared_ptr 智能指针也是模板类&#xff0c;因此当我们创建一个智能指针是要提供额外的信息——指针可以指向的类型。默认初始化的智能指针保存着一个空指针。shared_ptr允许多个指针指向同一对象。 shared_ptr<string> p1; //可指向string shared_ptr<list<int&…