我在VScode学Java(持续更新)

学习JAVA

  • 零.前言
    • 一>Java的介绍
      • 1.1)语言的发展
        • 其他:
      • 1.2)JAVA的特点
      • 1.3)代码举例:
      • 1.4)Java工作机制
    • 二>Java的开发配置
      • 2.1>安装JDK
      • 2.2>配置(扩展)
        • 检测是否已经有了JDK
    • 三>利用记事本来写
  • 壹.Java基础的语法
    • 一、必要点
      • 【1】Java--标识符:
        • 命名规则:
        • 注意事项:
      • 【2】Java--关键字
      • 【3】Java--分隔符
      • 【4】Java--注释:(三种)
      • ==*常见的术语表达*==
    • 二、数据类型
      • 字符型(char):
        • 【1】Java的转义字符与C类似,其形式是16进制是使用了\uxxxx格式:
        • 【2】字符串类型【引用类型[^什么是引用类型]】:
        • 【3】字符串写法和常用的使用方法:
          • (1)可以使用length()方法找到字符串的长度:
          • (2)‘+’可以拼接两个字符串
      • 数值型(整数类型 and 浮点型)
        • 【1】Java整数--byte (整型溢出知识点)
        • 【2】Java整数--short(整形提升知识点--显式/隐式类型转换
            • 显式/隐式类型转换:
        • 【3】Java整数--int 【Java语言默认的整型类型】:
        • 【4】Java整数--long :
        • 【5】Java浮点数--float 【储存大型浮点数组,可节省内存空间】:
        • 【6】Java浮点数--double 【Java语言默认的浮点类型】【自动类型转换】:
      • 布尔类型boolean(true和false)
      • 空类型(void)
    • 三、运算符:
      • 【1】算术运算符:
        • “+”可加法 也可字符串的连接
        • 区别
      • ==常见的术语表达==

零.前言

一>Java的介绍

1.1)语言的发展

1991年,James Gosling在SUN公司的工程师小组想要设计这样一种小型计算机语言。该语言主要用于像电视盒这样的消费类电子产品,由于不同的厂商选择不同的CPU和操作系统,后要求语言本身是中立的,也就是可以跨平台。

其他:

现在最常用的3个体系:即== Java SE【我现在在学习的】==、Java EE 和 Java ME。

Java SE 支持 Java Web 服务开发的类,并为 Java EE 提供基础,如 Java 语言基础、I/O 操作、网络通信以及多线程等技术。

Java EE 为企业版本帮助开发和部署可移植、健壮且安全的服务器端 Java 应用程序。

Java ME 在移动设备端和嵌入式设备,提供一个健壮灵活的环境。

1.2)JAVA的特点

1、多线程;2、分布式;3、健壮性;4、高性能;5、安全性;6简单性;7、解释执行;

对比C语言/C++语言来说,JAVA是没有指针的困扰;
Java具有强制类型的定义,不必为了类型转换过程中的遗忘干扰。
可以跨平台,windows,Linux,macOS等

1.3)代码举例:

public class work {
    public static void main(String[] args) {
        System.out.println("**************");
        System.out.println("   welcome    ");
        System.out.println("**************");
    }
}

1.4)Java工作机制

我在VScode学Java(持续更新)_第1张图片

Java作为解释型语言,经过编译器先行编译为机器代码,之后再运行。Java 虚拟机只要是用来运行 Java字节码文件的虚拟机。JVM 执行字节码时实际上还是要解释成具体操作平台的机器指令的。

也就是生成以下:
在这里插入图片描述

这个.class的字节码的文件二进制的
我在VScode学Java(持续更新)_第2张图片

二>Java的开发配置

2.1>安装JDK

我用的是VSCode这个集成开发环境,只需要管理好配置就可以了。

下载VSCode
在这里插入图片描述
鼠标滑到下面,找到这个点进去
在这里插入图片描述

左边栏选选择Java,下载适配编译包,我的是windows系统的,所以下载出来
我在VScode学Java(持续更新)_第3张图片

所以下载出来
在这里插入图片描述

2.2>配置(扩展)

紫色那个:
我在VScode学Java(持续更新)_第4张图片
添加关于Java的配置
我在VScode学Java(持续更新)_第5张图片

我安装了以下配置环境:
我在VScode学Java(持续更新)_第6张图片

检测是否已经有了JDK

打开cmd输入java -version
在这里插入图片描述
出现了java下载的版本数就说明成功了!!!

三>利用记事本来写

上面说到了cmd那么我们就利用这个写一个简易的 hello world

首先我们需要将=文件扩展名展开=方法:
文件资源管理器—上方的更多-----选项------查看–

  • 隐藏已知文件类型的扩展名

反向取消;
我在VScode学Java(持续更新)_第7张图片

记事本里打一个:

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

将其文件扩展名由.txt改成.java.最后图标改变
我在VScode学Java(持续更新)_第8张图片

观察文本的绝对位置,右击属性:
在这里插入图片描述

在cmd里先打入cd 在加上Desktop【这个主要看每个人主机的或者自己保存的地方而言】

直接一个万能选手hello world
我在VScode学Java(持续更新)_第9张图片

在cmd中的应用
我在VScode学Java(持续更新)_第10张图片

根据文件所在盘服,及其且绝对位置下的,执行 java 文件名【public class 后的】。

壹.Java基础的语法

一、必要点

【1】Java–标识符:

我们在C语言命名的是,数字字母下划线【a z || A-Z || 0~9 || ‘_’】

到了Java的学习之路中,

Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

    标识符是由字母、下画线、美元符号($)和数字组成,并且需要遵守以下的规则; 以及局部范围。

(标识符用来表示变量、常量、类、方法、数组、文件、接口、包等元素的名字。)

命名规则:

·包名:多单词组成的小写。如:my_writejava
·类名接口名:多单词拼接时,首字母需要大写(和驼峰命名法类似):My_Check
·变量名和方法名:手个单词小写,第二个开始的单词首字母都大写(和小驼峰命名法是一样的)my_Fun
·常量名:所以字母都需要大写,对于多单词的来说需要用下划线来拼接:MY_LOVE_OJ

注意事项:

关键字不能用作标识符。
标识符是大小写敏感的。
首字母不可以以数字作为开始首字符之后可以是字母、下画线、美元符号($)。

【2】Java–关键字

关键字的所有字母都为小写、不能作为标识符
保留关键字(是关键字,但不能使用):goto const。
在Java 的 null 不是关键字,与 true 和 false,属于是字面常量。

用于定义数据类型的关键字:class、interface、enum、byte、short、int、long、float、double、char、boolean、void

用于定义数据类型值的关键字:true、false、null

用于定义流程控制的关键字:if、else、switch、case、default、while、do、for、break、continue、return

用于定义访问权限修饰符的关键字:private、protected、public

用于定义类、函数、变量修饰的关键字:abstract、final、static

用于定义类和类之间关系的关键字:extends、ipplements

【3】Java–分隔符

空格
这里指广义的空格 (即白字符)包括空格、换行(\m)页(\f)符(\r)制符 (\t)种。连续的多个空格与一个空格的效果相同。

分隔符
()参数列表、控制语或强制型转换、高优先级O:
{}:初始化数据定语块、类、方法以及局部范围
[]: 用来声明数组的类型,也用来表示对数组的用
;:用来终止一个语句; for 控制语句
,了:分隔变量表中的各个变量; for控制语
.调用引用变量或方法,引用数组的元素.

有些资料认为上述分隔符也是运算符,如点运算符。

【4】Java–注释:(三种)

单行注释:
和C语言一样的是‘//’
多行注释
和C语言一样的是‘/* */’
文档注释

public class HelloWorld {
   /* 我是第一个Java程序
    * 它将输出 Hello World
    * 我是一个多行注释的示例
    */
    public static void main(String[] args){
       // 这是单行注释的示例
       /* 这个也是单行注释的示例 */
       System.out.println("Hello World"); 
    }
}

常见的术语表达

.class file (.class文件)
java file (java文件)
assembly language(汇编语言)
bit (比特)
block (块)
block comment(块注释)
bus (总线)
byte (字节)
bytecode (字节码)
central processing unit (CPU,中央处理器)class loader(类加载器)
comment (注释)
compiler (编译器)
console (控制台)
hardware(硬件)
high-levellanguage (高级语言)
Integreted Development Environment(IDE,集成开发境)
javac command (javac命令)
Java Development Toolkit (JDK,Java开发工具包)Java Virtual Machine (JVM,Java虚拟机)
keyword or reserved word (关键字或保留字)
line comment (行注释)
machine language (机器语言)
main method (main方法)
memory (内存)
Network Interface Card (NIC,网络接口卡)
Operation System (OS,操作系统)
pixel(像素)
program (程序)
programming(程序设计)
software(软件)
source code(源代码)
source file (源文件)
specificimport(明确导入)
storage devices (存储设备)
statement(语句)
java command (java命令)
indentation (缩进)

二、数据类型

这一节只有基本数据结构,引用数据结构是简单说明

Java 变量
Java 中主要有如下几种类型的变量
局部变量
类变量(静态变量)
成员变量(非静态变量)

基本数据类型

字符型(char):

默认值: ‘u0000’
字符是–>单一的 16 位 Unicode 字符; 字符类型用关键字char来表示单个字符,常见的字符有:字母、数字、标点符号或其他符号。 在Java语言中使用 Unicode字符集,因此char类型的数据均是16位,不论是英文单字母还是中文的单个字,都占用两个字节的内存空间来储存。字符类型常量用一对单引号括起来,比如’J’、‘a、‘7’、"爪’。也可以使用Unicode编码来表示字符值,用\u开头的4个十六进制数表示,如’\u0041表示’A。

–引入一个概念: 统一码(Unicode) 1990年开始研发,1994年正式公布。–

	统一码(Unicode),也叫万国码、单一码,是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,
以满足跨语言、跨平台进行文本转换、处理的要求。为每一个字符而非字形定义唯一的代码(即一个整数)统一码以一种抽象的方式(即数字)来处理字符。
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 实现方式:包括:UTF-8、UTF-16、UTF-32。(“UCS Transformation Format”)【分别以BYTE、WORD、DWORD作为编码单位】

这Unicode 统一码和我们熟知的ascll编码值有什么区别
(1) ASCII编码是1个字节,而Unicode编码通常是2个字节。一个具有注脚的文本。1
(2)Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了一个具有注脚的文本。2 但是用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。

【1】Java的转义字符与C类似,其形式是16进制是使用了\uxxxx格式:

下面是从网络中找了一张图片完美的诠释了转移字符和Unicode码的关系和作用
我在VScode学Java(持续更新)_第11张图片

【2】字符串类型【引用类型3】:

默认值:null

在Java语言中字符串String虽然不是语言的基本数据类型。
char类型只能表示一个字符。在实际问题解决过程中为了表示一串字符,我们就要使用一种被命名为String (字符串)的数据类型。例如下述代码将消息声明为一个字符串,其值为“My_WriteJava”:表示为 String First_JavaTxt ="My_WriteJava";

【3】字符串写法和常用的使用方法:

String 字符串名称="字符串内容"

(1)可以使用length()方法找到字符串的长度:

String a="asdasdas
System.out.println(a.length())

(2)‘+’可以拼接两个字符串

在 java 中,任何字符类型与字符串相加,结果都是拼接。

String a = "hello";
String b = "My_Java";
System.out.println(a + " " + b);

数值型(整数类型 and 浮点型)

Java给了六种数值类型,并定义它们的使用范围以及所占存储空间。
整数类型: byte、short、int、long
浮点类型:float、double
有根据Java基于JVM,则其所占字节是与机器无关的,这就与C语言的字节占用是有不一样的地方

·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Java会默认进行整型提升。
在Java中,当一个表达式中包含不同类型的数据时,会自动将较小的数据类型转换为较大的数据类型,
以便进行计算。这个过程被称为“自动类型转换”或“自动提升”。

整数默认值均为0(特殊的long 是0L)
float  0.0f
double 0.0d

【1】Java整数–byte (整型溢出知识点)

1字节(8bit)其中高位是符号位,其余位是数值位[-128-1272^(-7) 2^(7)]
相信大家都看过下面的这句话吧

包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127

byte类型虽然在语义(逻辑)上是占用1字节,但实际上,JVM中是将其当做int看的,也就是事实上是占用了32位(4字节)
所以其运算效率和int没区别,short也一样。

上面的中有一句==“JVM中是将其当做int看的”==这是由于整型上升的原因。
Cursorcode给的对话
我在VScode学Java(持续更新)_第12张图片
中文回答
我在VScode学Java(持续更新)_第13张图片

虽然由于在JVM看来与int无任何差别,但是不同的数值关键字必然有着其范围和储存空间的能力。
如果超出一定会导致的结果就是整型溢出.4
引入一个概念溢出和下溢5

观察下面的代码(并用自己的编辑器编译–我用VScode)

int i = Integer.MAX_VALUE;
System.out.println(i);
i++;
System.out.println(i);

我在VScode学Java(持续更新)_第14张图片

解决办法:
(1)将整形溢出的结果类型手动提升

byte a=128变成 int a=128只改变数据类型就好了
(2)就是把右值钱加上相对应的类型,也就是得到溢出的结果
我在VScode学Java(持续更新)_第15张图片

在byte[]数组中,JVM存储的则是真的1字节,short[]2字节。
(但也有的JVM其byte[]数组也是4字节1位)

【2】Java整数–short(整形提升知识点–显式/隐式类型转换

2字节(16bit)其中高位是符号位,其余位是数值位[-32768-327672^(-15) 2^(15)]

short是一个16位有符号整数数据类型,与byte数据类型一样,short数据类型也容易发生整型溢出。
其最大值可以表示为Short.MAX_VALUE
short变量的默认值为0。short可以像其他基本数据类型一样在Java中声明和初始化。

包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767

short变量可以像其他数字数据类型一样用于算术表达式。
在对short变量执行算术运算时,结果会自动提升为int类型。
这意味着,如果要将结果存储在short变量中,您需要将结果强制转换回short类型。
short a = 10;
short b = 20;
short c = (short) (a + b); // 需要将结果强制转换为short类型

上述代码是需要将结果强制转换为short类型的原因是因为:
在Java中,当两个short类型的值进行运算时,会自动将它们提升为int类型,然后再进行运算。(既然类型都被改变了,使用存储类型空间不对称就不可能切记一点Java语言是自动整型提升的,但会按照其存储范围

(1)在Java中,int是32位有符号整数,而short是16位有符号整数。
当你将int转换为short时,值会被截断以适应较小的数据类型。
这意味着如果int值太大而无法适应short,则生成的short值将与原始int值不同。
但是,如果int值足够小以适应short,则转换将成功,生成的short值将与原始int值相同。

(2)在C中,情况不同。当你尝试将int值分配给short变量时,如果int值太大而无法适应short,则编译器将发出警告或错误。
这是因为C不像Java那样自动截断值。相反,你需要显式地将int值转换为short才能执行转换。

在C中,情况不同。当你尝试将int值分配给short变量时,如果int值太大而无法适应short,则编译器将发出警告或错误。这是因为C不像Java那样自动截断值。相反,你需要显式地将int值转换为short才能执行转换。

在Java语言中,将低数据类型转换为高数据类型时,Java会自动将低数据类型提升为高数据类型。这是Java中的隐式类型转换。
区别于C语言,情况不同。当你将低数据类型转换为高数据类型时,C语言不会自动将低数据类型提升为高数据类型。
相反,你需要显式地将低数据类型转换为高数据类型才能执行转换。这是C语言中的显式类型转换。
显式/隐式类型转换:
Java可以显式类型转换【称为拓宽类型(widening a  type)】
  也可以隐式类型转换【为缩窄类型 (narrowing a type)】

(1)显式类型转换,也称强制类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。
转换规则:从存储范围小的类型到存储范围大的类型。 【低类型---->高类型】

(2)隐式类型转换,也称自动类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。
转换规则:从存储范围大的类型到存储范围小的类型。 【高类型---->低类型】

(3)强制类型转换通常都会存储精度的损失,所以使用谨慎

<1>显式类型转换和隐式类型转换都可能会导致精度或数据丢失。例如:将一个非常大的整数转换为浮点数时,可能会丢失精度。
<2>隐式类型转换可能会导致精度或数据丢失。例如:整型溢出。

【3】Java整数–int 【Java语言默认的整型类型】:

4字节(32bit)其中高位是符号位,其余位是数值位。范围[-2的31次方-2的31次方];
小心溢出或下溢5

包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647

<1>如果两个int类型的变量相加的结果超出了int类型的范围,则会发生溢出。【防止溢出】

如果是在二分法一般是用[(left+right)/2]  ---->如果是两个大数必然导致的一种情况是溢出
但是如果选择  [left+(right-left)/2]

<2>这个情况一般就是两数交换:

(1)引入第三个“瓶子”空间存储

int  a,b,c;
c=a; a=b;b=c;

(2) 加法
a = a + b; b = a - b; a = a - b;
(3)异或操作

a = a ^ b; 	
b = a ^ b; 	
a = a ^ b; 

【4】Java整数–long :

8字节(64bit)其中高位是符号位,其余位是数值位。范围[-2的63次方-2的63次方];

默认值是 0L【"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。】
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807

【5】Java浮点数–float 【储存大型浮点数组,可节省内存空间】:

4字节(32bit),单精度,符合IEEE 754标准的浮点数。写的时候数字后面加f/F(这是为了使得计算机明白我们用到是单精度浮点型,而Java给定的是double为默认的浮点类型)
如果需要更少的内存使用和更快的计算速度,则可以使用float。

包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38
float能精确到后6位

浮点数在计算机中的表示方式是通过二进制的方式来表示的,而不是十进制。因此,有些十进制的小数无法精确地转换为二进制,这就会导致一些舍入误差

一般来说,当浮点数的小数部分中有16位及以上的数字时,就会出现舍入误差。这是因为在IEEE 754标准中,双精度浮点数(64位)的小数部分有53位,而单精度浮点数(32位)的小数部分有24位。因此,当小数部分的位数超过这个范围时,就会出现舍入误差。

【6】Java浮点数–double 【Java语言默认的浮点类型】【自动类型转换】:

8字节(64bit),单精度,写的时候数字后面不加f/F
它的默认值为0.0。
它可以用于数学运算,如加法、减法、乘法和除法。

包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308
double能精确到后15位

Java语言和C语言与Python在double上的异同点:
我在VScode学Java(持续更新)_第16张图片
到了这里我们已经将Java语言中的数据存储的关键字,那么我们就需要了解什么是自动类型转换6

布尔类型boolean(true和false)

布尔型常量只有两个true和false【它们是Java关键字(字面常量)】
不能用0或1表示布尔型的值
默认值:false

这个与条件语句常用就放到下面在细说

空类型(void)

表示没有类型,仅用于方法返回值类型的声明上。
注意:空(null)不是类型,是一个字面常量,它表示没有值,用于表示引用数据类型的值为空。

三、运算符:

基本的运算符包括算术运算符、赋值运算符、逻辑运算符和关系运算符等

在编程中,运算符可以根据其操作数的数量进行分类:

(1)一元运算符:例如,递增(++)和递减(--)运算符,以及按位补码(~)和逻辑非(!)运算符,
	都是一元运算符,因为它们只需要一个操作数。还有正号(+)和负号(-)表达的并非下面的含义时候
(2)二元运算符:例如,加法(+)、减法(-)、乘法(*)、除法(/)和取模(%)运算符,
	以及逻辑运算符(&&、||)和比较运算符(<、>、==)都是二元运算符,因为它们需要两个操作数。
(3)三元运算符:Java中唯一的三元运算符是条件运算符(?:),它需要三个操作数。

【1】算术运算符:

加(+)、减(-)、乘(*)和除(/)\模运算(%)【其运算结果是整数除法的余数。】

~(按位取反运算符):此运算符翻转操作数的位。请注意,它仅适用于整数类型,并且结果是与操作数相同类型的整数。还要注意,结果是有符号的,因此最高位(最左边的位)用于表示数字的符号。
+(加法运算符):此运算符将两个操作数相加。它适用于数字类型(整数,浮点数)以及字符串(在这种情况下,它将它们连接起来)。请注意,如果其中一个操作数是字符串,则另一个操作数也将被转换为字符串。
-(减法运算符):此运算符从第二个操作数中减去第一个操作数。它适用于数字类型。请注意,如果其中一个操作数是浮点数,则结果也将是浮点数。
*(乘法运算符):此运算符将两个操作数相乘。它适用于数字类型。请注意,如果其中一个操作数是浮点数,则结果也将是浮点数。
/(除法运算符):此运算符将第一个操作数除以第二个操作数。它适用于数字类型。请注意,如果两个操作数都是整数,则结果将是整数(小数部分将被截断)。还要注意,如果第二个操作数为零,则会发生运行时错误。
%(取模运算符):此运算符返回第一个操作数除以第二个操作数的余数。它适用于整数类型。请注意,如果第二个操作数为零,则会发生运行时错误。
++(递增运算符):此运算符将操作数加1。它适用于数字类型。请注意,它可以用作前缀或后缀,并且结果取决于使用哪个(前缀返回递增的值,后缀返回原始值)。
–(递减运算符):此运算符将操作数减1。它适用于数字类型。请注意,它可以用作前缀或后缀,并且结果取决于使用哪个(前缀返回递减的值,后缀返回原始值)。

double rc = a - b * (int)(a / b);

“+”可加法 也可字符串的连接

在这三种语言中,"+"运算符用于数字值的加法和字符串的连接。

区别

C语言中的除法运算符将两个整数相除时截断小数部分,而Python中的除法运算符将返回一个浮点数。
public static void main(String[] args) {
        int b = 12;
        int c = ~b;
        int d = b + 5;
        int e = b - 5;
        int f = b * 5;
        int g = b / 5;
        int h = b % 5;
        int i = b++;
        int j = b--;
        int k = ++b;
        int l = --b;

        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
        System.out.println(h);
        System.out.println(i);
        System.out.println(j);
        System.out.println(k);
        System.out.println(l);
    }

常见的术语表达

algorithm (算法)
assignment operator (=) (赋值运算符)
assignment statement (赋值语句)
backslash () (反斜杠)
byte type (字节类型)
casting (类型转换)
char type (字符类型)
constant (常量)
data type (数据类型)
debugger (调试器)
debugging (调试)
declaration(声明)
incremental development and testing (递进式开发和测试)
int type (整数类型)
literal (直接量)
logic error (逻辑错误)
long type (长整型类型)
narrowing (of types) ((类型的)缩窄)
operator (操作符)
overflow (上溢)
pseudocode(伪代码)
primitivedata type(基本数据类型)
runtime error(运行错误)
decrement operator (–) (自减运算符)
short type (短整型类型)
double type (双精度类型)
encoding (编码)
final (final关键字)
float type (浮点类型)
floating-point number (浮点数)
expression(表达式)
syntax error(语法错误)
supplementary Unicode(补充统一码)
underflow (下溢)
Unicode (统一码)
UNIX epoch (UNIX时间戳)
variable (变量)
identifier(标识符)
widening (of types)((类型的) 拓宽)
increment operator (++) (自增运算符)
whitespace(空白符)


  1. 常见的计算机的信息编码:
    (1)ASCII–美国信息互换标准代码(是现今最通用的单字节编码系统)。
    (2)GB2312–信息交换用汉字编码字符集·基本集(1981年5月1日实施,是中国国家标准的简体中文字符集)
    (3)GBK–扩展了繁体中文字的支持。
    ~~【回归本条注脚在本文的来源:基本数据类型–字符型–char】~ ↩︎

  2. 解释为什么说Unicode编码是不会乱码的原因:
    如果是在C语言中的情况就是假定char ch='我'这样的中文字符就一定会报错,是因为C语言采用的是Ascll编码。同样的如果是在Java这类用Unicode 统一码编码的语言体系中char ch='我'是能够输出且不会报错的,这也是为什么能够被叫做万国码的原因。
    ~~【回归本条注脚在本文的来源:基本数据类型–字符型–char】~ ↩︎

  3. 什么是引用类型:
    在Java中类型可分为两大类:值类型与引用类型。值类型就是基本数据类型(如int ,double float等),而引用类型,是指除了基本的变量类型之外的所有类型(如通过 class 定义的类型)。引用类型包括数组、类实例和接口实例。
    从某种意义上来说,引用类型变量就是一个指针,只是 Java 语言里不再使用指针这个说法。【它们本身是不存储值,而是指向内存中的某个对象。与其他类型相比,引用类型占用的内存较小,因为它们只存储对象的地址,而不是对象本身。
    为此我们换需要注意一点和C语言学习时候一样,注意野指针和内存泄漏的问题
    ~~【回归本条注脚在本文的来源:基本数据类型–字符型–字符串类型】 ~~ ↩︎

  4. 什么是整型溢出:
    整型溢出是指当一个整数的值超出了其数据类型所能表示的范围时发生的情况。在Java中,当一个整数的值超出了其数据类型的范围时,它会发生溢出并且结果可能是不可预测的。(大部分还是重新记数的)
    也就是说,不超出内定范围是好的。超出就看给的数据里面有多少个数据类型范围的个数减去,从最低端开始算。如byte(1字节-128-127)我们给定一个数字是129这个一定是超过了127的且含有1个255【切记是有255种的数字,不是能够记到数字255】。超过了右值127有2位,所以就是-127了
    【回归本条注脚在本文的来源:基本数据类型–数值型-byte(整型溢出知识点)】 ↩︎

  5. 什么是溢出和下溢:
    (1)Overflow是指操作的结果大于数据类型可以表示的最大值。在int的情况下,这意味着一个大于2,147,483,647的值。当发生溢出时,结果“环绕”到数据类型可以表示的最小值,即-2,147,483,648。
    (2)Underflow是指操作的结果小于数据类型可以表示的最小值。在int的情况下,这意味着一个小于-2,147,483,648的值。当发生下溢时,结果“环绕”到数据类型可以表示的最大值,即2,147,483,647。
    ~~【第一个回车回归本条注脚在本文的来源:基本数据类型–数值型–byte】~
    ~~【第二个回车回归本条注脚在本文的来源:基本数据类型–数值型–int】~ ↩︎ ↩︎

  6. 什么是类型转换:
    整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算>
    (1)什么是自动类型转换 (byte,short,char)—> int —> long—> float —> double > 1. 不能对boolean类型进行类型转换> 2. 不能把对象类型转换成不相关类的对象。> 3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。> 4. 转换过程中可能导致溢出或损失精度。> 5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
    (2)强制类型转换:(type)value type
    (3)隐含强制类型转换:Java默认是int
    ~~【回归本条注脚在本文的来源:基本数据类型–数值型–浮点数–double 】 ~~ · ↩︎

你可能感兴趣的:(接触Java的开始,java,学习)