`
where
  • 浏览: 81861 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JAVA基础知识之我的理解 4(后续跟进中,希望对大家有帮助会有后续贴持续跟进)

阅读更多

 

开篇废话

最近有几天没有写总结了,没写的原因有那么几个,但主要的还是自己略微有些懒惰,最近看了有一些书,经历了一些事,觉得自己还是一个蛮幸福的人,可以干自己想干的事。父母又很开明,对我干什么都很支持,再此感谢他们对我的信任吧。这几天在做画图板,做的很纠结,本来要做一个画图板的总结,由于一些原因耽误了,不过没关系。有时间还是要把画图板那个完整版做个总结与大家分享。Where最近的一点点感悟在这个版块与大家分享,最近周围有朋友总是各种牢骚+抱怨,where觉得很没必要。生活本来就是跌宕起伏,一帆风顺属于童话。我们没权利要求生活事事顺意,但我们可以要求自己事事尽力。试着每天用一个幸福的心态作开始,慢慢的我们会发现一切没那么糟。试着给生活一缕微笑,或许它会回馈给你别样的风景。好了“废话”的最后还是希望大家可以微笑面对生活吧。

 

本次总结提纲

<!--[if !supportLists]-->1.      <!--[endif]-->数组的理解

<!--[if !supportLists]-->2.      <!--[endif]-->一维数组的理解和使用

<!--[if !supportLists]-->3.      <!--[endif]-->二维数组的理解和使用

<!--[if !supportLists]-->4.      <!--[endif]-->数组的排序(这部分比较有意思)

<!--[if !supportLists]-->一.    <!--[endif]-->数组的理解

<!--[if !supportLists]-->1)<!--[endif]-->数组是具有相同的基本数据类型的变量或对象的集合;

<!--[if !supportLists]-->2)<!--[endif]-->数组元素既可以是基本数据类型也可以是复合数据类型因此数组的           元素可以是数组,我们一会要说的二维数组可以理解为元素为数组的一维数组(听起来较拗口,多读几遍也许会习惯);

补充:JAVA中基本数据类型包括8种:byteintshortlongcharfloatdoubleboolean

     JAVA中复合数据类型有两种:数组、类或接口。

<!--[if !supportLists]-->3)<!--[endif]-->数组这种复合数据类型与我们以前提到过的基本数据类型的最大区别是对数组的操作是通过引用其地址来实现的。而基本数据类型是通过值来操作。

二.一维数组的理解和使用

很多书上讲数组往往把数组的声明和初始化混在一起讲,包括我先在学习用的书也是这样,对于这点我表示不怎么喜欢。因为它本质是两个过程,下面我们就分开看看这两个过程。声明一个数组时,只能得到存放这个数组的地址变量,并没有为他的元素分配储存空间数组还不能直接使用。而初始化就是为数组分配内存空间的过程。

<!--[if !supportLists]-->1)<!--[endif]-->一位数组的声明格式有两种:

数据类型 数据名[];

 

数据类型[] 数据名;

 

<!--[if !supportLists]-->2)<!--[endif]-->一维数组的初始化也是有两种方法:

直接初始化:

数据类型 数据名[] = {1,2,……n}

例:int a[]= {1,2,3}

动态初始化:

数据类型 数组名[] =new 数据类型[数组长度]

数据类型 数组名[];

数组名= new数据类型[数组长度]

(如果用动态初始化建议用地一种)

注意点:1.数组下标编号从0开始

        2.两种初始化方式不可随意组合比如:

          Int a[];

          a={1,2,3,4,5,};

这个就不对了,下午做二维数组的排序时where就犯了个类似的脑残错误找了半天。

<!--[if !supportLists]-->三.    <!--[endif]-->二维数组的理解和使用

二维数组可以理解为元素为一位数组的一位数组,同理N维数组可以理解成元素为N-1维数组的一维数组,当然可以有别的理解方式,但我这为什么都要最终把他们归结为一位数组,这里先卖个关子,一会儿在排序中会讲到。

1)二维数组的声明格式有两种:

数据类型 数据名[][];

 

数据类型[][] 数据名;

      2) 维数组的初始化也是有两种方法:

直接初始化:

例:int a[][]={ {1,2}{3,3}}

动态初始化也分两种:这里直接上示例

<!--[if !supportLists]-->1.      <!--[endif]-->int a[][];

a =new int[2][3];

 

<!--[if !supportLists]-->2.      <!--[endif]-->int a[][];

b = new int[2][];

b[0] =new int[3];

b[1] =new int[3];

         注意:在JAVA中不要求多维数组的每一维长度相等,即我们平时所说的列长度,如二维数组的第二个[]的数不一定相同,这点与C语言不同;

<!--[if !supportLists]-->四.    <!--[endif]-->数组的排序

 

关于一维数组的排序:冒泡排序,选择排序,插入排序,希尔排序,快速排序等等吧,各种参考书都有我再讲也没意思,大家就自己研究一下,不难。下面分享一个也不难但是比较有意思的二维数组排序。

二维数组排序的思想是:创建一个一维数组存放二维数组的元素,然后对一位数组排序(我用的是冒泡排序),最后再依次输出二维数组。

有代码有真相:package exercise0731;

/**
 * 二維數組
 * @author where
 *
 */
public class DimArray
{    
	
	public static void main(String[] args)
	{
		
		//創建一個二維數組對象
		int[][] a =new int[5][5];
	
		//對二維數組賦值
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a[i].length;j++)
			{
				java.util.Random ran=new java.util.Random();
				a[i][j] = ran.nextInt(10);
			}
		}
		//打印二維數組
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a[i].length;j++)
			{
				System.out.print(a[i][j]+"\t");
			}
			System.out.println();
		}
		int[][] k=sort(a);
		//打印二維數組
				for(int i=0;i<a.length;i++)
				{
					for(int j=0;j<a[i].length;j++)
					{
						System.out.print(a[i][j]+"\t");
					}
					System.out.println();
				}
	}
	//排序
	public static int[][] sort (int[][] x)
	{	
		int[] b=new int[x.length*x[0].length];
		
		for(int t=0;t<x.length;t++)
		{
			for(int i=0;i<x[t].length;i++)
			{
				
					 
					 b[i+t*5]=x[t][i];
				     
			}
		}
		for(int j=0;j<x.length*x[0].length;j++)
		{
			for(int k=j+1;k<x.length*x[0].length;k++)
			{
				if(b[j]>b[k])
				{
					int temp=b[j];
					b[j] = b[k];
					b[k] = temp;
				}	
			}	
		}
		for(int t=0;t<x.length;t++)
		{
			for(int i=0;i<x[t].length;i++)
			{
				x[t][i]= b[i+t*5];
			}
		}
		return x;
		
	}
         
		
	
}
1
1
分享到:
评论
4 楼 javafound 2012-08-01  
风起于青萍之末,少年加油~
3 楼 zhb31415926 2012-08-01  
什么年代了,整天有这种弱爆的文章充斥网络
2 楼 where 2012-08-01  
我也纠结呢,习惯在word环境编辑了。看来下次不得不用iteye的编辑器了。
1 楼 jinnianshilongnian 2012-08-01  
引用
<!--[if !supportLists]-->2.      <!--[endif]-->int a[][];

iteye什么时候解决下 从word拷贝过来后乱七八糟的问题……

相关推荐

    JAVA基础(小白也适用)

    继上一文档的补充,后续还会跟进,方便零基础学员快速掌握JAVA基础知识

    学习java的第二个项目,面试技巧和基础进阶知识。.zip

    1. **Java基础知识**: - 类与对象:理解面向对象编程的基本概念,如封装、继承和多态。 - 数据类型:熟悉基本数据类型(整型、浮点型、字符型、布尔型)以及引用数据类型(类、接口、数组)。 - 控制流程:掌握...

    java视频教程_黑马Java零基础辅导班[第二期]05天课件源码

    本教程主要针对初学者,旨在帮助他们掌握Java编程的基础知识。"java视频教程_黑马Java零基础辅导班[第二期]05天课件源码"涵盖了第五天的学习内容,包括核心概念和实践代码示例。 1. **Java语言基础**: Java是一种...

    2022年java培训总结.docx

    这些基础知识是构建任何Java程序的基础,理解它们能够使学员在后续的项目开发中更加得心应手。 其次,Java集合框架的掌握至关重要。ArrayList、LinkedList、HashMap、HashSet等容器的使用,以及泛型和并发处理的...

    学Java编程是不是会写代码就行了?共3页.pdf.zip

    Java编程是一种广泛应用于软件开发、Web应用...它涵盖了理解编程基础、运用Java标准库、掌握内存管理、使用开发工具、参与实际项目以及跟进行业动态等多个方面。只有全面掌握这些,才能真正成为一名合格的Java程序员。

    java资料专业的教程

    理解这些基础知识是学习Java的第一步。在Java中,一切都是对象,因此面向对象编程(OOP)的概念——类、对象、继承、封装和多态性——至关重要。 二、Java集合框架 Java集合框架提供了多种数据结构,如ArrayList、...

    Java实战(第2版)1

    第一部分“基础知识”将引导读者深入理解Java语言的基础,包括语法、类库和编程模式,为后续章节的学习打下坚实基础。第二部分“使用流进行函数式数据处理”主要讲解Java 8引入的流API,如何利用流进行高效的数据...

    JAVA达内上课源码

    在Java学习过程中,通常会按照天数或章节来组织材料,便于学员逐步跟进和复习。"day22"的源码可能包含那天课程讲解的全部或部分知识点的实现,比如可能是对之前学到内容的综合应用,或者是引入了新的概念和技术。 ...

    java面试题目精选

    综上所述,这份资料不仅涵盖了Java编程的基础知识,还深入到了更高级的主题,如面向对象编程、多线程处理以及标准库的使用等。对于准备参加Java面试的求职者来说,这是一份非常全面且实用的学习指南。

    Java工程师面试经验交流

    这不仅有助于在面试中展示出对公司的兴趣和热情,也能帮助理解面试官提出的问题背景,给出更贴合实际的回答。 再次,准备一份详尽的简历,突出自己的项目经验和技能亮点。简历应当清晰、简洁,避免冗余信息,同时...

    java 工程师 成长 必修

    根据给定的文件信息,我们可以将Java工程师必修的知识点分为几个关键部分,包括基础技术、框架与模式、实战项目经验以及持续学习的态度。 ### JavaSE:Java工程师的基础 JavaSE是Java Standard Edition的简称,它...

    JavaJava%BEE软件工程师就业求职手册.doc

    - **10.1.2 程序员是吃青春饭的吗**:探讨了关于程序员职业生涯可持续性的常见误解,强调随着经验和技能的增长,程序员的价值也会随之提高。 - **1.1.3 工程开发的分工**:介绍软件开发过程中不同角色的职责,包括...

    阿里巴巴java性能调优实战-最新经验总结 PDF

    ### 阿里巴巴Java性能调优实战-最新经验总结 #### 一、引言 在互联网技术高速发展的今天,高性能、高可用性的系统成为企业的核心竞争力之一...希望本文的内容能够为大家在Java性能调优的道路上提供一定的帮助和支持。

    java程序员指路

    - **C Primer Plus**:作为编程入门的第一本书,重点在于掌握C语言的基础知识,为后续的学习打下坚实的基础。 - **VS使用**:Visual Studio是一款功能强大的集成开发环境(IDE),学习如何使用它能够提高编程效率。 - ...

    Java_EE软件工程师就业求职手册

    - **面试流程**:详细介绍应聘过程,从准备到面试再到后续跟进,帮助求职者提高成功率。 - **应聘建议**:给出实用建议,如如何提升自我竞争力、如何准备面试等,增强求职者的信心。 #### Java编程基础与实践 - **...

    经典书籍 Scala for the Impatient.pdf

    - **持续跟进**:Scala语言在不断发展和完善中,持续关注最新的版本更新和技术动态,可以帮助你保持技术领先。 - **社区参与**:加入Scala相关的开发者社区或论坛,与其他开发者交流经验,可以帮助你更快地成长。 #...

    javaE:\JAVA\OO Project Instructor Guide(门诊模块).pdf

    - **模块概述**:门诊管理模块是整个健康管理信息系统的一个重要组成部分,主要用于管理患者的初次就诊、后续跟进以及其他相关的诊疗活动。 - **关键功能**: - 患者信息管理:包括患者基本信息、病历记录等。 - ...

    TCPIPSocketsinJavaEditi中文版

    本章为全书奠定了理论基础,虽然内容相对简略,但涵盖了计算机网络的基本概念,确保读者能够在后续章节中顺利跟进。 2. **第2章 - 客户端与服务器端基础** 这一章提供了客户端和服务器端的简单结构,包括了编写...

    java毕业设计&课设-CRM客户关系管理项目(两套)(视频+源码).doc

    - **相关资料**:如需求分析文档、设计文档等,有助于理解项目的背景、目标及实施过程中的决策依据。 #### 三、技术栈与工具 - **开发语言**:Java - **前端框架**:通常会采用HTML/CSS/JavaScript进行界面设计,并...

    Beginning Android

    - **Java基础知识**:由于Android应用程序主要基于Java开发,因此掌握Java语言的基本语法和面向对象编程是必备技能。 - **Android SDK版本变迁**:自2009年以来,Android操作系统经历了多个版本的更新和发展,了解...

Global site tag (gtag.js) - Google Analytics