java学习笔记第三章
三、数组 & 常用类
数组Array基本概念:
一维数组、二维数组、多维数组
数组是相同数据类型(可以为任意类型数据)的有序集合,通过索引来引用
数组也是对象;数组元素相当于对象的成员变量
数组长度是确定的,不可变的;如果越界,则报ArrayIndexOutOfBonnd
数组有三个特点:
1.其长度是确定的,数组一旦被创建,它的大小是不可改变的
2.其元素必须是相同类型,不允许出现混合类型
3.数组中的元素可以是任何数据类型,包含基本类型和引用类型
eg:int[] a = new int[3]; 3是数组长度;a[0] 、a[1] 、 a[2]
1 Car.java 2 public class Car { 3 String name; 4 5 public Car(String name){ 6 this.name= name; 7 } 8 } 9 10 Test01.java 11 public class Test01 { 12 public static void main(String[] args) { 13 /** 14 * 1. 数组是相同数据类型(数据类型可以为任意类型)的有序集合 15 * 2. 数组也是对象。数组元素相当于对象的成员变量(详情请见内存图) 16 * 3. 数组长度的确定的,不可变的。如果越界,则报:ArrayIndexOutofBoundsException 17 */ 18 int[] a = new int[3]; 19 a[0] = 23; 20 a[1] = 28; 21 a[2] = 32; 22 23 Car[] cars = new Car[4]; 24 cars[0] = new Car("奔驰"); 25 System.out.println(a.length); 26 for(int i=0;i<a.length;i++){ 27 System.out.println(a[i]); 28 } 29 30 } 31 }
数组声明和初始化:
一维数组的声明方式有两种:
type[] 变量名;
type 变量名[];
eg: int[] a; int b[];
通过new来创建数组: int[] a = new int[3];
初始化:对数组元素初始化,数组元素相当于对象的成员变量,按照成员变量的规则初始化
1.默认初始化: 默认值跟成员变量的规则一样:数字,整数:0,浮点数0.0,char \u0000,布尔型 0false
2.动态初始化: a[0]=1;for循环赋值 或 用容器来放,大部分容器底层实现是数组
for ( int i = 0;i<a.length;i++) {
a[i] = i*12;
}
3.静态初始化: int c[] = {23,34,56,78}; //长度4,索引范围0-3
1 public class Test02 { 2 public static void main(String[] args) { 3 //声明 4 int[] a; 5 int b[]; 6 //创建数组对象 7 a = new int[4]; 8 b = new int[5]; 9 10 //初始化(对数组元素的初始化) 11 //默认初始化:数组元素相当于对象的成员变量,默认值跟成员变量的规则一样。数字0,布尔false,char\u0000,引用:null 12 //动态初始化: 13 for(int i=0;i<a.length;i++){ 14 a[i] = i*12; 15 } 16 17 //静态初始化 18 int c[] = {23,43,56,78}; //长度:4,索引范围:[0,3] 19 Car[] cars = { 20 new Car("奔驰"), 21 new Car("比亚迪"), 22 new Car("宝马") 23 }; 24 Car c2 = new Car("奔驰"); 25 System.out.println(c2==cars[0]); 26 } 27 }
操作对象就是操作引用,引用是地址;数组属于引用类型
二维数组:
int[][] a = {{1,2},{3,4,0,9},{5,6,7}};
二维数组理解参考表格
1 public class Test01 { 2 public static void main(String[] args) { 3 // int [][] a = { 4 // {1,2}, 5 // {3,4,0,9}, 6 // {5,6,7} 7 // }; 8 9 int[][] a = new int[3][]; 10 a[0] = new int[2]; 11 a[1] = new int[4]; 12 a[2] = new int[3]; 13 14 a[0][0] = 1; 15 a[0][1] = 2; 16 17 a[1][0] = 3; 18 a[1][1] = 4; 19 a[1][2] = 0; 20 a[1][3] = 9; 21 22 a[2][0] = 5; 23 a[2][1] = 6; 24 a[2][2] = 7; 25 26 System.out.println(a[2][2]); 27 } 28 }
1 public class Matrix { 2 3 /** 4 * 打印指定的矩阵 5 * @param c 6 */ 7 public static void print(int[][] c){ 8 //打印矩阵 9 for(int i=0;i<c.length;i++){ 10 for(int j=0;j<c.length;j++){ 11 System.out.print(c[i][j]+"\t"); 12 } 13 System.out.println(); 14 } 15 } 16 17 /** 18 * 矩阵加法 19 * @param a 20 * @param b 21 * @return 22 */ 23 public static int[][] add(int[][] a,int[][] b){ 24 int[][] c = new int[a.length][a.length]; 25 for(int i=0;i<c.length;i++){ 26 for(int j=0;j<c.length;j++){ 27 c[i][j] = a[i][j]+b[i][j]; 28 } 29 } 30 return c; 31 } 32 33 public static void main(String[] args) { 34 int[][] a = { 35 {1,3,3}, 36 {2,4,7}, 37 {6,4,9} 38 }; 39 int[][] b = { 40 {3,3,3}, 41 {2,4,7}, 42 {1,4,9} 43 }; 44 45 int[][] c = add(a, b); 46 47 print(c); 48 49 } 50 }
===============================常用类===============================
String类: 不可变字符序列
StringBuilder类/StringBuffer类: 可变字符序列;同属于抽象类AbstractStringBuilder下的两个类
StringBuilder类,线程不安全,效率高;
StringBuffer类,线程安全,效率低;
根据StringBuilder字符数组,diy,定义数组类,模拟ArrayList
StringBuilder; char[] value;
MyArrayList ; Object[] elements;
天下文章一大抄,主要是想象力,创新(反复的类比,模仿,并创造)
转载于:https://www.cnblogs.com/xuliang179/p/5148174.html
java学习笔记第三章相关推荐
- Java 学习笔记:第一章 Java入门
Java 学习笔记:第一章 Java入门 1.1 计算机语言发展史以及未来方向 1.2 常见编程语言介绍 C语言 C++ 语言 Java语言 PHP 语言 Object-C和Swift 语言 Java ...
- 《Go语言圣经》学习笔记 第三章 基础数据类型
<Go语言圣经>学习笔记 第三章 基础数据类型 目录 整型 浮点数 复数 布尔型 字符串 常量 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记, ...
- 机器人导论(第四版)学习笔记——第三章
机器人导论(第四版)学习笔记--第三章 3 操作臂运动学 3.1 引言 3.2 连杆的描述 3.3 连杆连接的描述 3.4 连杆坐标系的定义 3.5 操作臂运动学 3.6 驱动空间.关节空间和笛卡尔空 ...
- Java学习笔记项目三:开发团队调度软件(尚硅谷)
JAVA学习笔记开发团队调度软件 ①创建基础组件 Equipment 接口 package august.domain;/*** 设备领取** @author : Crazy_August* @Dat ...
- Java学习笔记(三):流程控制
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://mp.csdn.net/mdeditor/100662793 目录 ...
- 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第三章:简单控件
第 3 章 简单控件 本章介绍了App开发常见的几类简单控件的用法,主要包括:显示文字的文本视图.容纳视图的常用布局.响应点击的按钮控件.显示图片的图像视图等.然后结合本章所学的知识,演示了一个实战项 ...
- Java学习笔记(三十五)
在完成对C语言的学习后,我最近开始了对C++和Java的学习,目前跟着视频学习了一些语法,也跟着敲了一些代码,有了一定的掌握程度.现在将跟着视频做的笔记进行整理.本篇博客是整理Java知识点的第三十五 ...
- JAVA学习笔记(三) 实现类
这一节,我们要学会一些基本的实现类的操作,理解构造函数的作用和用法. 目录 一.实例变量和封装 1.变量 2.封装 二.指定类的公共接口 指定方法 指定构造函数&为公共接口注释 案例测试 三. ...
- Win32学习笔记 第三章 HelloWin 选择自 villager 的 Blog
Win32学习笔记 作者: 姜学哲(netsail0@163.net) 教材: Windows程序设计(第五版)北京大学出版社 [美]Charles Petzold 著 北京博彦科技发展有限公司 ...
最新文章
- SAP MM Reset预留单上的Deletion Flag?
- 元学习论文OPTIMIZATION AS A MODEL FOR FEW-SHOT LEARNING的简单理解
- C语言中的匿名结构体
- mysql 导入dbm文件_DBM数据导入到mysql数据库方法
- vim配置c语言开发环境变量,gcc配置和vim编程
- [oracle]数据库字段类型char(n)的问题
- win10搭建无盘服务器配置,win10系统无盘安装教程
- 面试宝典-常见面试问题回答技巧
- UiBot进行谷歌浏览器长截屏办法
- 小米路由的IPv6支持教程(纯转保存)
- 输入角度,输出正弦、余弦函数值
- 银行考试计算机也需要考金融知识吗,银行招聘考试科技岗考试科目及考试内容...
- 最强大脑记忆曲线(4)——关于项目中的全局变量
- 颠覆想象,一盏夜灯的变革
- 用水流的概念来玩硬件(三)----LDO与DCDC电源电路
- 计算机ppt测试题填空题,2017职称计算机PowerPoint练习试题及答案(1)-中华考试网...
- 海量工业数据如何应用?能源企业率先做了这些尝试
- 0x01A686F0 处有未经处理的异常(在 五金上色软件.exe 中): 0xC000041D: 用户回调期间遇到未经处理的异常。。...
- win10下anaconda、tensorflow-cpu以及tensorflow-gpu安装
- PX4源码分析2:飞控系统控制流程简述