前言:

我是一名前端开发人员,因为想自学java,根据网络上的推荐顺序,决定从呼声最高的 java 核心卷 11版 读起(PS:其实12版已经出来了,但是只有实体书,没有电子版呀。实体书太贵了,70+。正版要100+。为了节省资源,多吃饭,就看了11版)。
目前准备好的环境如下:

  • java版本:17版本。没装18(据说有中文乱码bug)
  • IDE:intelliJ IDEA(正式,30天无限期试用版)

先准备这些,以后再有别的需要准备的,就另行安装。此书的前两章稍微过了一眼,觉得并没有什么深入了解和做笔记的必要。就直接从第三章开始了。毕竟学技术的着急呀。那么,下面就让我们来开始吧。

第一章:java的基本程序设计结构

第一个java程序

/*
*以下字段不是固定的,都是有可选项的。
*public:访问修饰符,表示程序的应用范围
*class:类,表明java程序中的全部内容都包含在类中
*FirstSample:类名,一般首字母会大写
*static:静态方法
*void:表示函数返回值
*String[] args:字符串类型的数组,名字是args。这里面的表示main方法的形参
*/
public class FirstSample{public static void main(String[] args){System.out.println("hello java");//输出hello java}
}

注意:

  • java区分大小写
  • java文件名必须与类名一致。
  • main方法必须是public的

看完之后可以使用ide 右键运行 来查看此段代码的运行结果。

数据类型

  • 基本类型

java提供了八种基本类型:包括(四个整数型,两个浮点型)一个字符类型,一个布尔型

类型 描述 补充 最大最小值
byte(字节) byte数据类型是8位,有符号的,以二进制补码表示的整数 默认值为0,byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一 -123~127
short(短整型) short数据类型是16位,有符号的以二进制补码表示的整数 默认值是0,一个short类型占int类型的二分之一 -32768(-215)~32767(215 - 1)
int(整数型) int数据类型是32位,有符号的以二进制补码表示的整数 -2,147,483,648(-231)**~**2,147,483,647(231 - 1)
long(长整数型) long数据类型是64位,有符号的以二进制补码表示的整数 默认值是0L,注意需要在数字后面加上L表示 (-263)**~**(263 - 1)
float(单精度,浮点型) float是单精度,32位,符合IEEE 754标准的浮点数 float 在储存大型浮点数组的时候可节省内存空间;默认值是0.0f,浮点数不能用来表示精确的值,如货币
double(双精度,浮点型) double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数 double类型同样不能表示精确的值,如货币; 如果需要存储货币,那么使用BigDecimal类来表示
boolean(布尔值) 布尔类型表示一位的信息
char(字符类型) char 类型是一个单一的 16 位 Unicode 字符; char 数据类型可以储存任何字符; 最小值是 \u0000(十进制等效值为 0); 最大值是 \uffff(即为 65535)

整数和小数取值范围大小关系:
double>float>long>int>short>byte

  • 引用类型

    • 引用类型指向一个对象,指向对象的变量是引用变量,变量一但声明后,类型就不能被改变了。
    • 对象、数组都是引用数据类型
    • 所有引用类型的默认值都是null
    • 一个引用变量可以用来引用任何与之兼容的类型

常量与变量

  • 变量:

    • 格式——dataType dataName;

    • 带初始化的示例:int a = 10;

    • java10之后如果变量有初始值,并且可以通过初始值来反推变量类型的时候,可以不用写类型,直接用关键字 var 来声明

      var i = 10;
      System.out.println(i);//10 这样是没问题的
      
  • 常量:

    • 使用final关键字来声明,当然这个关键字也可以用来声明类和方法。都是不可改变的

      final var I= 10;//10
      
    • 常量约定为全大写

数值类型之间的转换

  • 自动转换

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-isa7LgXD-1660664197396)(C:\Users\11075\AppData\Roaming\Typora\typora-user-images\image-20220816131654132.png)]

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

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

      • 不能对boolean进行转换
      • 不能把对象类型转换成不相关类的对象
      • 在把容量大的类型转换位容量小的类型时必须使用强制类型转换
      • 转换过程中可能导致溢出或损失精度
      • 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

      注意:必须满足转换前的数据类型的位数要低于转换后的数据类型

    • 实线箭头表述无精度损失转换,虚线则有可能损失一些精度

  • 强制类型转换

    • 条件是转换的数据必须是兼容的

    • 格式(type) value ,type是要强制类型转换后的数据类型

      public class QiangZhiZhuanHuan{public static void main(String[] args){int i1 = 123;byte b = (byte) i1;//强制类型转换为byteSystem.out.println("int强制类型转换为byte后的值等于"+b);}
      }
      

数组

  • 数组定义

    1,数据类型 [] 数组名如:int[] arrayName
    2,数据类型  数组名 []如:int arrayName[]
    推荐使用第一种
    
  • 数组创建

    1,静态数组:int[] arrayList = new int[]{1,2,3,4}简写:int[] arrayList = {1,2,3,4}如果用system.out.println(arrayList),会打印出[D@776ec8df,[D@776ec8df分为几个部分:[-表示类型,即这是一个数组D-表示当前数组元素类型@-表示一个间隔符号,这是固定格式776ec8df-表示数组的真正的地址值2,动态数组格式:数据类型[] 数组名 = new 数据类型[数组长度]
    
  • 访问数组元素:array[index]

  • for…each循环,因为这是后来加入的,所以格式如下

    for(int element:a){System.out.println(element)
    }
    
  • Arrays类中的常用方法:

    方法名 接收参数 描述 示例
    fill(arr,fromIndex,toIndex) arr:原数组
    fromIndex:开始索引
    toIndex:结束索引
    填充一个数组,有开始索引,必定有结束索引 Arrays.fill(arr,0,5)
    sort(arr,fromIndex,toIndex) arr:原数组,数组类型需要是整数型
    fromIndex:开始索引
    toIndex:结束索引
    数字排序,如果原数组是一个字符串的话,那么就是按照先大写后小写来排序的 Arrays.sotr(arr);
    toString(arr) arr:原数组 序列化成字符串 Arrays.toString(arr)
    equals(arr1,arr2) arr1:数组1
    arr2:数组2
    比较两个数组元素是否相等 Arrays.equals(arr1,arr2)
    binarySearch(arr,fromIndex,toIndex,element) arr:原数组
    fromIndex:开始索引
    toIndex:结束索引
    element:要查找的元素
    使用二分查找法来寻找元素,必须是排序后的数组。 int[] arr = {10,20,30,40,50}; System.out.println(Arrays.binarySearch(arr, 30));
    copyOf(arr,length) arr:原数组
    length:要复制的长度
    复制数组 int[] arr2 = Arrays.copyOf(arr,length);
    copyOfRange(arr,fromIndex,toIndex,) arr:原数组
    fromIndex:起始索引
    toIndex:结束索引
    复制数组 int[] arr2 = Arrays.copyOfRange(arr,3,4);

# java 核心技术卷1 (原书第11版)通读 第一章:java的基本程序设计结构相关推荐

  1. Java核心卷Ⅱ(原书第10版)笔记(上)

    Java核心卷Ⅱ(原书第10版)笔记(上) 写在最前面,个人认为,卷Ⅱ更适合当手册使用,更多的是讲API的使用,前两章内容比较实际,要是合并到卷一就好了. 文章目录 第1章 Java SE 8 的流库 ...

  2. 《数据结构与抽象:Java语言描述(原书第4版)》一Java插曲1

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第1章 ,第1.1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timoth ...

  3. 数据库系统概念原书第六版黑皮书第一章课后习题作业答案

    文章目录 1.8列出文件处理系统和DBMS之间的四个显著区别. 1.9 解释物理数据独立性的概念,以及它在数据库系统中的重要性. 1.10 列出数据库管理系统的五个职责.对每个职责,说明当它不能被履行 ...

  4. 新书推荐 | Java核心技术 卷II 高级特性(原书第11版)

    新书推荐 <Java核心技术 卷II 高级特性(原书第11版)> 长按二维码 了解及购买 全新第11版!针对Java SE9.10.11全面更新!Java领域极具影响力和价值的著作之一,与 ...

  5. 《数据结构与抽象:Java语言描述(原书第4版)》一练习

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. H ...

  6. 《数据结构与抽象:Java语言描述(原书第4版)》一1.2 说明一个包

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第1章 ,第1.2节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timoth ...

  7. 《数据结构与抽象:Java语言描述(原书第4版)》一2.1.7 删除项的方法

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,第2.1.7节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timo ...

  8. 《数据结构与抽象:Java语言描述(原书第4版)》一JI2.3 抛出异常

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. H ...

  9. 《数据结构与抽象:Java语言描述(原书第4版)》一2.2.1 可变大小数组

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,第2.2.1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timo ...

  10. 《数据结构与抽象:Java语言描述(原书第4版)》一2.1.4 让实现安全

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,第2.1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timoth ...

最新文章

  1. Linux服务器上监控网络带宽的18个常用命令
  2. Devstack配置负载均衡,负载均衡版本V2
  3. c mysql 设置字符集_C语言如何查看和修改MySQL使用的字符集
  4. acquireQueued
  5. Sql2005 PIVOT运算符的操作
  6. JAVA最常用的排序_冒泡排序、选择排序、快速排序
  7. django-模型类管理器
  8. 拓扑排序Topological Sorting
  9. OpenGL ES之GLSurfaceView学习一:介绍
  10. 《隋唐演义》二:竞争对手的实力在不断增强
  11. java sigar 远程_Java运用第三方开源jar包sigar.jar获取服务器信息
  12. python 漏洞扫描器_自动扫描全网漏洞的扫描器
  13. 中国AI专利数稳居第一!世界各国AI专利深度盘点
  14. Emacs_HotKey
  15. hiberfil.sys文件删除
  16. 云原生之K8S------Pod的基础概念
  17. SQL语句常见面试题(一)
  18. java设计五子棋_JAVA课程设计+五子棋(团队博客)
  19. android 设置动态头像,Android实现动态圆环的图片头像控件
  20. “低头走路”与“抬头看天”

热门文章

  1. Hadoop 安装教程
  2. ubuntu install wiznote
  3. python做积分计算器_用Python学数学之Sympy代数符号运算
  4. c语言超市收银台程序,超市收银电脑操作流程
  5. 微信小程序实战十一:uni中集成ocr身份证识别功能
  6. 小程序商城和h5商城那个比较好?
  7. wps如何将字体竖着排列_如何在短时间内,使自己的字看起来更舒服?
  8. Spring 菜鸟教程 异常 集锦
  9. 北理工-大二数据结构乐学编程题-约瑟夫问题、验证表、循环小数、综教楼后的坑...
  10. android开发接口文档模板