近期对正在学习JavaSE的学员做了一个简单的调查,惊讶地发现,处于这个阶段的学员在面对众多新的知识时,往往没有学习重点,顾此失彼。

在这里,为了避免广大初学者漫无目的地消耗就业前这个特殊阶段的宝贵时间,给大家分享一个掌握编程技术的“捷径”——以持有数据为线索,将程序的核心功能掌握后再学习其他内容,避免盲目地拿着过于详细全面的知识点来总结,纠结于细节。

那么就以JavaSE为主,小结一下Java当中持有数据相关的内容。

持有数据重要性

在编程的起始学习过程中,学员们过于关注语言本身,从而忽略了软件的本质。我们再来回顾一下IEEE对软件的解释:软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。从定义可以看出,归根结底,软件是对数据的处理。对数据处理,就需要临时或永久性地保存数据。那么再难的技术,其本质上就是在研究处理及持有数据的过程。处理数据的需求千变万化,而持有数据的方式是相对固定的。所以,将语言持有数据的相关内容掌握后,其他内容都在此基础上进行延伸即可。持有数据是学习编程语言的“万金油”,毫不客气地说,掌握了持有数据,就可以使用这门语言进行开发了。

一切都是数据

首先来讨论到底何为数据。一谈到数据,首先想到的便是数字和文字。当然,在“面向对象理论”还没被系统地提出时,数据指的就是以数字和文字为主的实体单位。然而对于Java这种比C++语言更“纯粹”的面向对象语言而言,任何数据均为对象。虽然属于杂合性语言的Java也可以使用面向过程的方式,但是将所有数据均看成对象使编程从总体思想上变得更为简单。而一旦使用面向对象去思考,所有的一切均为数据。

将数据分类来看,仍然分为基本数据类型:byte、short、int、long、float、double、boolean、char与引用数据共九大类型,记住这些类型,也只有这些类型。而在Java当中每种基本数据类型均有其对应的引用数据类型。所以,在JavaSE当中,将学习的重点放在引用数据类型的持有方式上即可。

基础持有数据方式:变量

变量存储数据是最简单、直接的方式,我们要明白的是:编程中,变量在存储时,需要三个部分,即数据类型、变量名与值。

数据类型:这又要说回基本类型与引用类型两种数据的辨析。而辨析两种数据过于繁杂,由于基本类型均有对应的引用数据类型。所以,我们只要笼统地认为,任何数据均可以表示为引用类型。如果一定要使用变量存储基本类型的话,也只是数据持有的位置不同,可能在堆,可能在堆栈,可能在常量存储区域,会用到寄存器。如果学习时间紧迫的话,一时无法分清,就不要再浪费宝贵时间了。我们需要的是写程序完成功能!只要知道基本类型与引用类型有别,是两类数据类型即可。

对于变量数据类型,总结一句话便是:变量是在内存中临时持有引用数据类型或者基本类型的域。

变量名:即这个变量数值的名称指代(这里不做类似“句柄”、“引用”、“值传递”等名词在C++与Java中命名是否准确,以及在业界孰是孰非的讨论。我们要做的很简单,只要记住变量是有名字的,代表那个值即可)。我们可以有一个叫做a的变量存储的是基本类型,或者定义一个名称叫b的变量存储了引用类型。

值:谈到值就要谈到数据类型。由于解决了数据类型的问题,所以我们的值只有引用或者基本类型值。

持有数据方式:数组

复杂的现实业务致使一次一个变量持有数据的处理方式,不能胜任数据持有的需求(想一想将一个年级所有班级的人员信息拿到,如果没有数组,将几个班同学的信息混在一起,那就会乱糟糟的了!)。所以,数组出现了。我们只要注意以下问题,数组的知识就全部掌握了:

数组是用来存储多个数据类型相同的数据,可以存放任意数据类型;

你定义一个数组时必须预先知道它的长度;

数组中每一个数据叫做元素,都可以使用索引访问到,索引将数据从0开始编号,一直编号到数组长度小1的数;

定义格式:

数据类型[ ]变量名 = new 与等号左边相同的数据类型[该死的数组长度];

数据访问格式:数组名[元素索引]。

持有数据方式:集合

在JavaEE的项目中,恐怕没有比集合再常用的容器了。在日夜颠倒地开发软件时,用的最多的基本就是集合了。

在解决问题时,大多时候我们并不知道需要多少个对象,或者他们存活多久。比如,黑客在盗取12306时绝对不知道会有多少人的数据,那么,就用集合持有这些数据即可(事实上并没有这么简单)。我们学习的核心内容,需要掌握的内容如下:

集合分为单列集合与双列集合,可以存储引用类型,元素类型可以不一致;

List/ArrayList集合:单列集合,可变的数组。提供了许多扩展方法;

Iterator:使知识体系更为系统的中间产物,用来迭代(遍历)集合。比较麻烦,使用foreach循环(增强for循环)即可;

Map/HashMap集合:双列集合,基于键值对的集合体现。存储的内容可解释为数学中的映射关系;

泛型:类似集合这样,可以存储任意类型,但会带来很多代码行为上的不便,那么直接使用泛型规定好要使用的数据类型即可;

枚举:枚举不属于某个集合,但是其存储的为群组数据,即一个常量集,类似集合。由于静态常量的存在以及数据库数据字典的存在,枚举可被其他内容替代实现的可能性很大。可以在学习阶段先“放过它”。

在程序临时持有对象之后,不得不说一下持久化持有数据。如果从事Java企业级开发,绝大部分的持久化数据动作由数据库完成。配合使用IO操作可以完成持有数据的转移。那这些IO内容就是在学习集合以后需完成的学习内容了。

那么到此为止,常用非持久化持有数据的持有方式已经介绍完了。当你掌握了这些内容后,配合之前学习的面向对象的内容,把引用搞清楚,那么JavaSE最核心的内容便已经掌握,甚至已经达到可以去某些Java软件公司做实习生的水平。

依照这个线路,一个仅有计算机基础常识的学员,不需考虑诸如数据结构、操作系统、微机原理、网络基础等计算机专业知识的储备,便可以在一周内完成JavaSE最核心内容的知识铺垫。这样速成的培养可以满足简单、临时性的小型软件一线开发工作。

友情推荐:哪有干扰器卖  四海电子解码

编程技术的“捷径”—Java持有数据(内有福利)相关推荐

  1. 从零开始学习音视频编程技术(42) AAC数据解析

    AAC基本格式 AAC音频格式有ADIF和ADTS: ADIF:Audio Data Interchange Format 音频数据交换格式.这种格式的特征是可以确定的找到这个音频数据的开始,不需进行 ...

  2. java运用网络编程技术代码_Java 网络编程

    java网络编程 1.什么叫计算机网络? 由不同地理位置的不同计算机主机,连接起来组成的网络. 2.什么叫网络编程? 在网络的基础上,使用网络进行编程,对应用层进行设计的活动. 3.网络编程三要素:I ...

  3. 如何能能够学好软件编程技术

    软件编程也就是我们常说的程序员,在当前互联网行业影响背景下,就算是普通职场人士,能掌握编程技术也具有一定的实际意义. 由于编程技术与应用场景有密切的关系,所以从不同的角落来看编程技术,也会有不同的要求 ...

  4. Java和Java大数据有什么区别?

    单单提起java或者大数据,很多人对此都一目了然,但对于Java大数据这样一个新鲜名词,多少有些疑惑.那java和java大数据学习的内容是一样的吗?两者有什么区别呢?今天就从java和java大数据 ...

  5. 一直在说的Java和Java大数据,你能搞清楚吗?

    提起Java或大数据,很多人对此都一目了然,但对于Java大数据这样一个新鲜名词,多少有些疑惑. 那Java和Java大数据学习的内容是一样的吗?两者有什么区别呢?今天就从Java和Java大数据的以 ...

  6. python函数式编程读取数据时出现错误_写 Python 代码不可不知的函数式编程技术...

    原标题:写 Python 代码不可不知的函数式编程技术 选自 Medium 作者:Raivat Shah 参与:魔王.Jamin 本文对 Python 中的函数式编程技术进行了简单的入门介绍. 近来, ...

  7. 学习(Java Web)编程技术要点及方向; 完成项目的要决

    本文亮点: 传统学习编程技术落后,应跟著潮流,要对业务聚焦处理. 要Jar, 不要War:以小为主,以简为宝,集堆而成. 去繁取简 Spring Boot,明日之春. 集堆综合技术如 jHipster ...

  8. JAVA 编程中的汉字处理(1)---java 编程技术中汉子问题的分析与解决

    Java 编程技术中汉字问题的分析及解决 段明辉, 自由撰稿人 简介: 在基于 Java 语言的编程中,我们经常碰到汉字的处理及显示的问题.一大堆看不懂的乱码肯定不是我们愿意看到的显示效果,怎样才能够 ...

  9. 提高C++性能的编程技术笔记:内联+测试代码

    内联类似于宏,在调用方法内部展开被调用方法,以此来代替方法的调用.一般来说表达内联意图的方式有两种:一种是在定义方法时添加内联保留字的前缀:另一种是在类的头部声明中定义方法. 虽然内联方法的调用方式和 ...

最新文章

  1. android 布局之RelativeLayout(相对布局)
  2. 正余弦定理解三角形习题
  3. calico跨主机ping不通_戳穿 Calico 的谎言
  4. jquery---基本标签
  5. rm 空间不释放_rm删除文件之后,空间就被释放了吗?
  6. koa2+vue实现登陆以及是否登陆控制
  7. BufferedOutputStream_字节缓冲输出流
  8. Vue通过build打包后 打开index.html页面是空白的
  9. STL --- UVA 123 Searching Quickly
  10. 旷视提出Circle Loss,革新深度特征学习范式 |CVPR 2020 Oral
  11. Shell 基础知识--细说linux配套视频
  12. ABP:在多语句事务内不允许使用 CREATE DATABASE 语句
  13. 2022年C语言教程入门和最新C语言自学教程C语言进阶教程大全
  14. 如何把微信朋友圈的小视频转发到自己的朋友圈
  15. html修改导航栏字体大小,CSS 制作网页导航条(下)
  16. 如何解读羊毛出在了猪身上的保理业务?
  17. 【2016.11.10】百度云离线下载迅雷链接
  18. Kattle Spoon同步工具
  19. 阿尔弗雷德.爱因斯坦论莫扎特钢协
  20. 有没有人帮忙出一份答案,本人急用,python一级试卷。谢谢

热门文章

  1. 通信中的计算机技术,计算机技术在通信中的应用研究.pdf
  2. TensorFlow estimator训练时 invalid continuation byte
  3. 有哪两种类型计算机用户界面,2016年计算机一级笔试试题
  4. Dell R720服务器安装CentOS
  5. 百分比宽高下使内容居中
  6. html5自动播放音乐外链,HTML5 audio 如何实现播放多个MP3音频
  7. 教你快速开发一个微信小游戏好友排行榜
  8. 已解决:Python OSError: [WinError 193] %1 不是有效的 Win32 应用程序。(numpy模块、MyQR模块)
  9. 随笔录—2014.6.12
  10. python注释google规范