[转载]学习J2SE过程中的30个基本概念_congji3817的博客-程序员秘密

学习J2SE过程中的30个基本概念
学习J2SE过程中的30个基本概念


作者:leeak 来源:不详 加入时间:2003-11-18 阅读次数:
阅读选项:文字 黑色红色白色灰色绿色蓝色青色黄色背景 白色粉红灰色绿色蓝色黑色青色棕色字号 9 pt10 pt12 pt14 pt16 pt18 pt24 pt30 pt字型 正常加粗 自动滚屏[左键停止]

前 言: 在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有 必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念.
Java概述:
目 前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合pc应用程序的开 发,其发展逐渐变成在开发手持设备,互联网信息站,及车载计算机的开发.Java于其他语言所不同的是程序运行时提供了平台的独立性,称许可以在 windows,solaris,linux其他操作系统上使用完全相同的代码.Java的语法与C++语法类似,C++/C程序员很容易掌握,而且 Java是完全的彻底的面向对象的,其中提出了很好的GC(Garbage Collector)垃圾处理机制,防止内存溢出.
Java的白皮书为我们提出了Java语言的11个关键特性.
(1)Easy:Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb.
(2)分布式:Java带有很强大的TCP/IP协议族的例程库,Java应用程序能够通过URL来穿过网络来访问远程对象,由于servlet机制的出现,使Java编程非常的高效,现在许多的大的web server都支持servlet.
(3)OO:面向对象设计是把重点放在对象及对象的接口上的一个编程技术.其面向对象和C++有很多不同,在与多重继承的处理及Java的原类模型.
(4)健壮特性:Java采取了一个安全指针模型,能减小重写内存和数据崩溃的可能型
(5)安全:Java用来设计网路和分布系统,这带来了新的安全问题,Java可以用来构建防病毒和防攻击的System.事实证明Java在防毒这一方面做的比较好.
(6)中立体系结构:Java编译其生成体系结构中立的目标文件格式可以在很多处理器上执行,编译器产生的指令字节码(Javabytecode)实现此特性,此字节码可以在任何机器上解释执行.
(7)可移植性:Java中对基本数据结构类型的大小和算法都有严格的规定所以可移植性很好.
(8)多线程:Java处理多线程的过程很简单,Java把多线程实现交给底下操作系统或线程程序完成.所以多线程是Java作为服务器端开发语言的流行原因之一
(9)Applet和servlet:能够在网页上执行的程序叫Applet,需要支持Java的浏览器很多,而applet支持动态的网页,这是很多其他语言所不能做到的.

基本概念:
1.OOP 中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而 不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过 对封装对象数据,很大限度上提高复用率.
2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)
3.封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)
4.通过扩展一个类来获得一个新类叫继承(inheritance),而所有的类都是由Object根超类扩展而得,根超类下文会做介绍.
5.对象的3个主要特性
behavior---说明这个对象能做什么.
state---当对象施加方法时对象的反映.
identity---与其他相似行为对象的区分标志.
每个对象有唯一的indentity 而这3者之间相互影响.
6.类之间的关系:
use-a :依赖关系
has-a :聚合关系
is-a :继承关系--例:A类继承了B类,此时A类不仅有了B类的方法,还有其自己的方法.(个性存在于共性中)
7.构造对象使用构造器:构造器的提出,构造器是一种特殊的方法,构造对象并对其初始化.
例:Data类的构造器叫Data
new Data()---构造一个新对象,且初始化当前时间.
Data happyday=new Data()---把一个对象赋值给一个变量happyday,从而使该对象能够多次使用,此处要声明的使变量与对象变量二者是不同的.new返回的值是一个引用.
构造器特点:构造器可以有0个,一个或多个参数
构造器和类有相同的名字
一个类可以有多个构造器
构造器没有返回值
构造器总是和new运算符一起使用.
8.重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载.编译器必须挑选出调用哪个方法.
9.包(package)Java允许把一个或多个类收集在一起成为一组,称作包,以便于组织任务,标准Java库分为许多包.java.lang java.util java,net等,包是分层次的所有的java包都在java和javax包层次内.
10.继承思想:允许在已经存在的类的基础上构建新的类,当你继承一个已经存在的类时,那么你就复用了这个类的方法和字段,同时你可以在新类中添加新的方法和字段.
11.扩展类:扩展类充分体现了is-a的继承关系. 形式为:class (子类) extends (基类).
12.多态:在java中,对象变量是多态的.而java中不支持多重继承.
13.动态绑定:调用对象方法的机制.
(1)编译器检查对象声明的类型和方法名.
(2)编译器检查方法调用的参数类型.
(3)静态绑定:若方法类型为priavte static final 编译器会准确知道该调用哪个方法.
(4)当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用x所指向的对象的实际类型相匹配的方法版本.
(5)动态绑定:是很重要的特性,它能使程序变得可扩展而不需要重编译已存代码.
14.final类:为防止他人从你的类上派生新类,此类是不可扩展的.
15.动态调用比静态调用花费的时间要长,
16.抽象类:规定一个或多个抽象方法的类本身必须定义为abstract
例: public abstract string getDescripition
17.Java中的每一个类都是从Object类扩展而来的.
18.object类中的equal和toString方法.
equal用于测试一个对象是否同另一个对象相等.
toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.
(toString 方法是一个很重要的方法)
19.通用编程:任何类类型的所有值都可以同object类性的变量来代替.
20.数组列表:ArrayList动态数组列表,是一个类库,定义在java.uitl包中,可自动调节数组的大小.
21.class类 object类中的getclass方法返回ckass类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类.
22.class类为编写可动态操纵java代码的程序提供了强大的功能反射,这项功能为JavaBeans特别有用,使用反射Java能支持VB程序员习惯使用的工具.
能够分析类能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射机制十分强大.
1.在运行时分析类的能力.
2.在运行时探察类的对象.
3.实现通用数组操纵代码.
4.提供方法对象.
而此机制主要针对是工具者而不是应用及程序.
反射机制中的最重要的部分是允许你检查类的结构.用到的API有:
java.lang.reflect.Field 返回字段.
java.reflect.Method 返回方法.
java.lang.reflect.Constructor 返回参数.
方法指针:java没有方法指针,把一个方法的地址传给另一个方法,可以在后面调用它,而接口是更好的解决方案.
23.接口(Interface)说明类该做什么而不指定如何去做,一个类可以实现一个或多个interface.
24.接口不是一个类,而是对符合接口要求的类的一套规范.
若实现一个接口需要2个步骤:
1.声明类需要实现的指定接口.
2.提供接口中的所有方法的定义.
声明一个类实现一个接口需要使用implements 关键字
class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是类,不能用new实例化一个接口.
25.一个类只有一个超类,但一个类能实现多个接口.Java中的一个重要接口
Cloneable
26.接口和回调.编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法.
例:ActionListener 接口监听.
类似的API有:java.swing.JOptionPane
java.swing.Timer
java.awt.Tookit
27.对象clone:clone方法是object一个保护方法,这意味着你的代码不能简单的调用它.
28.内部类:一个内部类的定义是定义在另一个内部的类
原因是:1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据
2.对于同一个包中的其他类来说,内部类能够隐藏起来.
3.匿名内部类可以很方便的定义回调.
4.使用内部类可以非常方便的编写事件驱动程序.
29.代理类(proxy):1.指定接口要求所有代码
2.object类定义的所有的方法(toString equals)
30.数据类型:Java是强调类型的语言,每个变量都必须先申明它都类型,java中总共有8个基本类型.4种是整型,2种是浮点型,一种是字符型,被用于
Unicode编码中的字符,布尔型.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-130839/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/374079/viewspace-130839/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/congji3817/article/details/100308800

智能推荐

16 个 Linux 服务器监控命令和watch_weixin_33834137的博客-程序员秘密

如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个非常棒而且专业的工具 YaST,KDE 的 KDE System Guard 同样很出色。当然,要使用这些工具,你必须在服务...

IDEA中建立源文件夹,resources文件夹_idea的resources目录是干嘛的_Sasuke丶的博客-程序员秘密

Sources文件夹里面放 Java 源文件,Test 文件夹里面放测试的 Java 源文件,Resources文件夹 里面放一些需要加载的配置,例如你使用SSM框架的xml配置文件。1. 第一步在右上角点击对应的 Project ...

Windows系统设置局域网共享(无密码+有密码)_局域网的无密码链接_流星雨-123的博客-程序员秘密

1、网络配置https://jingyan.baidu.com/article/bea41d43ab0be5b4c51be60c.html2、共享文件夹选择需要共享的文件夹,右键->属性->共享->共享(s)...3、添加共享对象添加Everyone或者Guest用户,添加一个就行,通过网络访问的用户都属于Guest,而Everyone包含了Guest。设置权限级别读取/写入。点击共享(H)。4、完成共享无密码版本到此就可以结束了,后面为..

Ubuntu16.04下配置nginx HTTPS + RTMP流媒体服务器_rtmp 怎么配置https吗_ITO涛涛的博客-程序员秘密

Ubuntu16.04下配置HTTPS + rtmp服务器1.   在/usr目录下创建文件夹nginx-install:cd /usrmkdir nginx-installcd nginx-install2.   下载nginx及相关组件:wget http://nginx.org/download/nginx-1.10.3.tar.gzwget http://zlib.net/zlib-...

微信小程序使用oss上传文件_mmmmmmmmya的博客-程序员秘密

主要代码const env = require('./env.js');const Base64 = require('./Base64.js');require('./crypto/hmac.js');require('./crypto/sha1.js');const Crypto = require('./crypto/crypto.js');const uploadFi...

span使用inline-block属性的使用,使行内元素成行内块元素_span inline-block_Marttin2的博客-程序员秘密

<th colspan="8" class="search-bart"> <span style="width:45%;display:inline-block;vertical-align:top;">类型:zz</span> <span style="width:30%;display:inline-block;vertical-a...

随便推点

如何实现计算机、ipad、安卓手机三者日历同步?_f1sd的博客-程序员秘密

目的:实现手机日历记事功能同步电脑,偏于查看,高效管理时间。核心:通过 Exchange服务实现。操作(以qq邮箱为例):QQ邮箱开通POP3/IMAP/SMTP/Exchange服务;在手机邮箱客户端添加Exchange类型账户。输入qq账号,密码(现在似乎都要授权码登陆),服务器-》接收设置,一般默认配好(服务器:ex.qq.com,端口:443);在日历上记事,然后同步,在电脑端foxmai...

笔记-小马哥 Spring编程思想笔记_spring boot 小马哥笔记_516农夫的博客-程序员秘密

小马哥 Spring编程思想笔记-第一章Spring 特性总览核心特性IOC 容器(IoC Container)Spring 事件(Events)资源管理(Resources)国际化(i18n)校验(Validation)数据绑定(Data Binding)类型转换(Type Conversion)Spring 表达式(Spring Express Language)面向切面编程(AOP)数据存储(Data Access)JDBC

6个好用免费的LiDAR数据处理软件【2021最新】_新缸中之脑的博客-程序员秘密

要找到免费的激光雷达数据处理软件并不容易,因此在这篇文章中,我们将介绍6个最出色的免费或开源的LiDAR软件,可以用于3D点云查看、点云数据分析、点云操作等。1、QGIS 3 - 查看3D 点云的最佳LiDAR软件QGIS3 查看激光点云的视觉效果令人印象深刻,因为你可以在 3D 环境中进行原生地缩放、平移和飞行。首先,你可以拖放LAS和LAZ文件,我们非常喜欢这一特性。无需转换为中间格式,因为 QGIS 3 可以处理原始点云格式。QGIS3提供有基于类、高度和 RGB 属性来表示点云的选项。但它

理解监督学习和无监督学习的定义_·城府、的博客-程序员秘密

机器学习  首先呢,学习可以称为一个举一反三的过程,举个例子:我们在学生时代经常参加的考试,考试的题目在上考场前我们未必做过,但是在考试之前我们通常都会刷很多的题目,通过刷题目学会了解题方法,因此考场上面对陌生问题也可以算出答案。  机器学习的思路也类似:我们可以利用一些训练数据(已经做过的题),使机器能够利用它们(解题方法)分析未知数据(考场的题目)。就像考试前老师给我们预测考试会考什么一样。  简单的一句话:机器学习就是让机器从大量的数据集中学习,进而得到一个更加符合现实规律的模型,通过对模型的使

spark dataframe API 整理_ZhanYunQI的博客-程序员秘密

1,从列表中创建dataframe   列表的每一个元素转换成Row对象,利用parallelize()函数将列表转换成RDD,toDF()函数将RDD转换成dataframe   from pyspark.sql import Row   l=[Row(name='jack',age=10),Row(name='lucy',age=12)]   df=sc.parallelize

MyEclipse(不论版本是啥)卸载后重新安装,提示:拷贝到计算机时出错;问题解决方案:_myeclipse安装出现错误_卑微小白菜的博客-程序员秘密

经过自身的经验分享给大家,我在卸载myeclipse之后,又想回头安装一个时,发现安装不了,提示:An error occurred while copying software to your machine:复制到计算机时出错解决方案:Ⅰ:将原来的myeclipse相关文件彻彻底底的卸载(删除)干净:这位神秘的辅助者就藏在一般用户都不想碰的盘--系统盘(C)下。 C--| |--programe files |--Genu...

推荐文章

热门文章

相关标签