java学习笔记

     2022-03-27     519

关键词:

Java 基本数据类型

一、Java 的两大数据类型:

  • 内置数据类型
  • 引用数据类型

1、内置数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

byte:

  • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
  • 最小值是 -128(-2^7);
  • 最大值是 127(2^7-1);
  • 默认值是 0;
  • byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
  • 例子:byte a = 100,byte b = -50。

short:

  • short 数据类型是 16 位、有符号的以二进制补码表示的整数
  • 最小值是 -32768(-2^15);
  • 最大值是 32767(2^15 - 1);
  • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
  • 默认值是 0;
  • 例子:short s = 1000,short r = -20000。

int:

  • int 数据类型是32位、有符号的以二进制补码表示的整数;
  • 最小值是 -2,147,483,648(-2^31);
  • 最大值是 2,147,483,647(2^31 - 1);
  • 一般地整型变量默认为 int 类型;
  • 默认值是 0 ;
  • 例子:int a = 100000, int b = -200000。

long:

  • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
  • 最小值是 -9,223,372,036,854,775,808(-2^63);
  • 最大值是 9,223,372,036,854,775,807(2^63 -1);
  • 这种类型主要使用在需要比较大整数的系统上;
  • 默认值是 0L;
  • 例子: long a = 100000L,Long b = -200000L。
    "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

float:

  • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
  • float 在储存大型浮点数组的时候可节省内存空间;
  • 默认值是 0.0f;
  • 浮点数不能用来表示精确的值,如货币;
  • 例子:float f1 = 234.5f。

double:

  • double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
  • 浮点数的默认类型为double类型;
  • double类型同样不能表示精确的值,如货币;
  • 默认值是 0.0d;
  • 例子:double d1 = 123.4。

boolean:

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true 和 false;
  • 这种类型只作为一种标志来记录 true/false 情况;
  • 默认值是 false;
  • 例子:boolean one = true。

char:

  • char类型是一个单一的 16 位 Unicode 字符;
  • 最小值是 \u0000(即为0);
  • 最大值是 \uffff(即为65,535);
  • char 数据类型可以储存任何字符;
  • 例子:char letter = ‘A‘;。

2、引用类型

  • 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了
  • 对象、数组都是引用数据类型
  • 所有引用类型的默认值都是null
  • 一个引用变量可以用来引用任何与之兼容的类型。
  • 例子:Site site = new Site("Runoob")。

 

二、Java 常量

常量在程序运行时是不能被修改的。

1、在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:

final double PI = 3.1415927;

2、虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。

常量可以赋给任何内置类型的变量。例如:

byte a = 68;
char a = ‘A‘

3、byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。

当使用常量的时候,前缀 0 表示 8 进制,而前缀 0x 代表 16 进制。如:

int decimal = 100;
int octal = 0144;
int hexa =  0x64;

4、Java的字符串常量也是包含在两个引号之间的字符序列。下面是字符串型常量的例子:

"Hello World"
"two\nlines"
"\"This is in quotes\""

5、字符串常量和字符常量都可以包含任何Unicode字符。例如:

char a = ‘\u0001‘;
String a = "\u0001";

三、类型转换

1、自动类型转换

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

转换从低级到高级。

  ------------------------------------>  

byte,short,char—> int —> long—> float —> double

数据类型转换必须满足如下规则:

  • 1. 不能对boolean类型进行类型转换。

  • 2. 不能把对象类型转换成不相关类的对象。

  • 3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

  • 4. 转换过程中可能导致溢出或损失精度,例如:

    int i =128;   
    byte b = (byte)i;
  • 因为 byte 类型是 8 位,最大值为127,所以当强制转换为 int 类型值 128 时候就会导致溢出。

  • 5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

    (int)23.7 == 23;        
    (int)-45.89f == -45

自动类型转换必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。

2、强制类型转换

  • 1. 条件是转换的数据类型必须是兼容的。

  • 2. 格式:(type)value      type是要强制类型转换后的数据类型 实例:

3、隐含强制类型转换

  • 1. 整数的默认类型是 int。

  • 2. 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。

 

四、Java 变量类型

在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:

type identifier [ = value][identifier [value] ...] ;

格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。

Java语言支持的变量类型有:

  • 类变量:独立于方法之外的变量,用 static 修饰。
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量:类的方法中的变量。
技术分享图片

1、Java 局部变量

  • 局部变量声明在方法、构造方法或者语句块中;
  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
  • 访问修饰符不能用于局部变量;
  • 局部变量只在声明它的方法、构造方法或者语句块中可见;
  • 局部变量是在栈上分配的。
  • 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

2、实例变量

  • 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
  • 当一个对象被实例化之后,每个实例变量的值就跟着确定;
  • 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
  • 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
  • 实例变量可以声明在使用前或者使用后;
  • 访问修饰符可以修饰实例变量;
  • 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
  • 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
  • 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。

 3、类变量(静态变量)

  • 类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。
  • 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
  • 静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
  • 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
  • 静态变量在程序开始时创建,在程序结束时销毁。
  • 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
  • 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
  • 静态变量可以通过:ClassName.VariableName的方式访问。
  • 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。

 




2022年java学习笔记目录

...统摄知识点:2022年Java程序设计讲课笔记二、2022年Java学习笔记(一)踏上Java开发之旅Java学习笔记1.1.1搭建Java开发环境-Java概述Java学习笔记1.1.2搭建Java开发环境-安装配置JDKJava学习笔记1.1.3搭建Java开发环境-编写并运行... 查看详情

java程序猿的javascript学习笔记(1——理念)

计划按例如以下顺序完毕这篇笔记:Java程序猿的JavaScript学习笔记(1——理念)Java程序猿的JavaScript学习笔记(2——属性复制和继承)Java程序猿的JavaScript学习笔记(3——this/call/apply)Java程序猿的JavaScript学习笔记(4——this/闭... 查看详情

java程序猿的javascript学习笔记(9——jquery工具方法)

...按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1——理念)Java程序猿的JavaScript学习笔记(2——属性复制和继承)Java程序猿的JavaScript学习笔记(3——this/call/apply)Java程序猿的JavaScript学习笔记(4——this/闭... 查看详情

java程序猿的javascript学习笔记(12——jquery-扩展选择器)

计划按例如以下顺序完毕这篇笔记:Java程序猿的JavaScript学习笔记(1——理念)Java程序猿的JavaScript学习笔记(2——属性复制和继承)Java程序猿的JavaScript学习笔记(3——this/call/apply)Java程序猿的JavaScript学习笔记(4——this/闭... 查看详情

java后端开发工程师学习笔记狂神说java笔记

目录1.学习视频推荐阶段一1.计算机基础2.Java入门学习3.java基础语法4.流程控制5.方法6.数组7.面向对象编程8.异常9.常用类10.集合框架11.IO流12.多线程13.GUI编程14.网络编程15.注解和反射16.JUC编程17.JVM探究阶段二阶段三阶段四阶段五阶... 查看详情

java学习笔记01

Java的抽象方法和抽象类Java抽象方法抽象方法在抽象类中只需要声明,不用写出具体是实现方法eg. 在子类中引用时候再加入具体实现方法eg.   查看详情

java学习笔记(代码片段)

来自尚硅谷老师的学习笔记:http://www.atguigu.com/1.helloworld代码:publicclassHelloWorldpublicstaticvoidmain(String[]args)//main方法为程序入口System.out.println("HelloWorld");编译javacHelloWorld.java 查看详情

java学习笔记一

  这不是我第一次接触Java。大学里面就有学习Java,只是因为一些原因,没选择软件开发这条路。决定要深入学习一门开发语言后,在Java和python之间徘徊,还是选择了先学习Java。在学习一门语言之前,总要先了解一下它的起... 查看详情

java学习笔记-集合运算

Java学习笔记-集合运算List.retainAll交集CollectionUtilsJava8Stream参考资料List.retainAll交集//测试数据List<Integer>listA=IntStream.rangeClosed(1,6).boxed().collect(Collectors.toList());List<Integer>listB&# 查看详情

java集合学习笔记(代码片段)

Java集合学习笔记前言开始学习Java的集合,简要的记录一下学习到的东西,仅供自己查阅和复习方便。学习自廖雪峰的Java教程。集合简介Java标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集... 查看详情

java集合学习笔记(代码片段)

Java集合学习笔记前言开始学习Java的集合,简要的记录一下学习到的东西,仅供自己查阅和复习方便。学习自廖雪峰的Java教程。集合简介Java标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集... 查看详情

java学习笔记

   Java学习笔记(一)   在上学期,我就接触了GUI,通过上学期的期末程序设计中,学到了不少GUI知识,在假期中,也自学了GUI,将上学期的期末课程设计做的更加完善,但是也存在一些问题,例如:不会... 查看详情

java超简明入门学习笔记(零)

Java编程思想第4版学习笔记(零)前言     这个笔记本主要记录了我在学习Java编程思想(第4版,中文版)的过程中遇到的重难点及其分析。主要参考了C++11版本的C++语言,对比了它们不同的部分。   ... 查看详情

java学习笔记

制作了一个简单地登录界面,添加了事件响应。import javax.swing.*; import java.awt.*; import java.awt.event.*; public class JTextFieldDemo extends JFrame implements ActionListener 查看详情

java学习笔记

简单的做了个登录界面,运用了添加事件响应,但添加单选框时没有显示出来。package界面设计; importjavax.swing.*; importjava.awt.*; importjava.awt.event.*; publicclassJTextFieldDemoextendsJFrameimplementsActionListener{ JTextFieldjtf=newJTextFie 查看详情

java学习笔记

一、基本概念1.1常量池概念。1.java的数据类型。  int、Integer:  long、Long:  float、Double:  bigdecimal:  char、Character:  String:  Stringbuffer、Stringbuilder: 一、基本概念 1.1常量池概念。 1.java的数据类型。&nb... 查看详情

java学习笔记day_01

Java学习笔记(复习整理)虽然不知道该怎么写,但是不起步就永远不知道该怎么做。.刚开始可能会写的很差劲,但会一点一点变好的。本笔记是以我按照传智播客的视频和Java核心思想来学习,前面的基础部分主要是用于个人的... 查看详情

java笔记学习

java笔记一、认识java语言1、Java平台-Java语言特性2、DOS命令指示符使用3、Java集成开发环境4、Java程序结构组成-类5、Java程序结构组成-方法6、Java程序结构组成-语句7、Java程序结构组成-注释8、命名规范二、运算符与表达式1、算术... 查看详情