Java的初步认识
PS:弥补那些错过的时间,弥补那些本是决定做而没有做的事情,当初说好了学习编程要把自己学到的或是理解的写到博客中记录下来,可是由于各种缘由最终是没有实现...经过几番周折决定把那些丢掉的重新捡起来。对于Java的文章已经是大雪纷纷满天飞到处都是,但那毕竟不是属于自己的,只有当自己能说出来,能够表达出来那才算是真正属于自己的,所以决定自己也来扯扯,再次来过并且记录下,弥补那些已经错过的,并且告诫自己不要在找各种借口了,在找各种借口就要被淘汰了...以此时刻提醒自己,激励自己,博客要坚持进行下去。
看着题目也许觉得很老套,已没有什么新鲜感了(毕竟Java发展已经很多年,文章和资源很多很多),也许会说这么基础的有必要写嘛,有必要在博客园发表嘛,其实我也是纠结到底要不要发表,纠结纠结,算了吧还是发表,算是自我安慰和激励吧!谁都不是天生就是大神,都是通过慢慢的学习,由简单然后一步二步渐渐的渐渐的深入,学习亦是如此写文章也应该如此,循序渐进吧,走自己的路,让别人去说吧...
一千个人一千个哈姆雷特,也就是每个人都有自己的想法,所以在九十年代虽然当时有很多编程的语言但还是成就了红遍世界的编这一编程语言——Java,文章内容绝非原创有些是摘自所看的书中的内容。
Java"白皮书"关键术语
Java的设计者们对Java编写了颇详细的"白皮书"用来解释设计的初衷以及情况,并且发布了一个简短的摘要,可以使用下面11个关键术语进行概括:简单性、面向对象、网络技能(Network-Savvy)、健壮性、安全性、体系结构中立、可移植性、解释型、高性能、多线程、动态性,下面就这几个关键术语做一件单的说明。
简单性:相对C++而言,Java剔除了C++中难以理解、容易混淆的特性,所以Java语法相当于是C++的"纯净"版本,当然也不是全部剔除了C++中所有的不适当的特性,任然是保留了一些使用的语法,例如switch。虽然Java简单易上手,但是实现功能需要编写大量的代码。
面向对象:简单的说,其实面向对象是一种程序设计技术,重点是放在了数据和对象的接口上,用一名游者从A目的到B目的,"面向对象"的看游者是从A到 B了至于是如何到而是其次想的,而用"非面向对象"的看游者则是首先想的是该如何到达目的地B,是走过去还是坐车还是其它方式,面向对象思想更加的接近于人们的对问题的思考。Java与C++的主要不同点在于多继承,Java使用了简单的接口概念和元素模型取而代之。
网络技能:Java对于处理想HTTP和FTP等之类的TCP/IP协议扩展了强大的类库,通过URL访问和打开网络上的对象,当你深入学习Java的时候就会发现Java竟然把打开scoket如此繁重的任务变得如此简单了。也可以进行分布式对象中间通信。
健壮性:Java对于早期的问题检测、后期动态(运行时)检测以及有出错倾向的状态做了大量的设定和判断,Java编译器能够识别许多早期的和运行时的问题。
安全性:Java从一开始就设计许多能够防范的各种攻击,例如未经授权就读写文件、在自己处理空间之外破坏内存,当然人任何事情不是绝对的,Java中也是有bug的,但任然在不断完善中。
体系结构中立:编译器生成一个体系结构中的目标文件格式,这是被编译过的代码,只要有Java运行时环境就可以在许多处理器上执行,Java编译器通过生成由于特定的计算机体系结构无关的字节码指令实现了这一特性。解释字节码相对全速运行机器指令较慢,但是通过虚拟机采用即时编译可以较为友好的解决这一问题。
可移植性:Java规范中没有依赖的具体实现在加上基本数据类型的大小以及相关算法的说明,致使Java一处编译到处运行这一强大的可移植性。
解释型:Java解释器可以在任何移植了解释器的机器上执行Java字节码,早期Java开发工具速度相当的慢,但是Java采用虚拟机的即时编译减缓了执行较慢这一问题。
高性能:字节码可以(在运行时刻)快速的翻译成运行这个应用程序特定的CPU的机器码,而Java正是通过编译器生成了体系结构中立的字节码,体现了其高性能。
多线程:Java中对线程进行大量的处理,只要系统支持Java中的线程就可以利用多个处理器。
动态性:Java库中可以自由的添加新的方法和实例变量,然而对客户却没有任何的影响,体现了Java语言动态性的强大。
Java发展史简介
此话题要追溯到1991年由Patrick Naughton以及其伙伴James Gosling(一个全能的计算机奇才)带领的sun公司工程师打算设计一一种小型的计算机语言,主要用于有线电视转换盒这类的消费设备,由于这些消费设备所面临的问题的缘故,这才促使了Java语言的诞生,初期项目被命为"Green",经过重重困难突破,Java语言就这样出现了,开始这门语言被叫做Oak(可能是Gosling很喜欢自己办公室的橡树吧),后来由于sun公司发现Oak已经有这种语言了,于是就就被命名为Java,由此Java语言就诞生了。1996年sun发布了Java的第一个版本, 1998年12月发布了Java1.2版本并称其为Java2标准版本软件开发工具箱。除了这个版本外,另外还有两个版本,一个是用于手机等嵌入式设备的"微型版",一个是用于服务器端处理的"企业版"。后期发布了1.3版本1.4版本主要是对Java1.2版本做了写改进以及扩展了标准的类库。在2004年发布的1.5版本(后期改为5.0版本)做了一次重大的改进,该版本添加了泛型,还有for ench循环、自动装箱以及元数据等改动。2011年oracle(sun公司后来被oracle公司收购了)发布了Java7这一新版本,只是做了一些简单的改进,如今Java已经更新到版本Java8了。
Java中的关键字
abstact:抽象类或是方法 assert:用来查找内部程序错误
boolean:布尔类型 break:跳出一个switch或是循环
byte:8为数据类型 case:switch的一个分支
char:Unicode字符类型 class:定义一个类
const:未使用 continue:在循环末尾继续
default:switch的缺省子句 do:do/while循环最前的语句
double:双精度浮点数类型 else:if语句的else子句
enum:枚举类型 extends:定义一个类的父类
final:一个常量,不能覆盖的类或是方法 finally:try块中总会执行的部分
float:单精度浮点数类型 for:一种循环类型
goto:未使用 if:一个条件语句
implements:定义一个类实现的接口 import:导入一个包
instanceof:测试一个对象是否为一个类的实例 int:32位整数类型
interface:一种抽象类型,其中包含可以由类实现的方法,接口 long:64位长整型类型
native:友宿主系统实现的一个方法 new:分配一个新对象或是数组
null:一个空引用(需要说明,nul从技术上讲是一个直接量,而不是关键字) package:包含一个类的包
private:这个特性只能由该类的方法访问 protected:这个特性只能由该类、其子类以及同一包中的其它类的方法访问
public:这个特性可以由所有的类的方法访问 return:从一个方法返回
short:16位整数类型 static:这个特性是这个类特有的,而不属于这个类的对象
strictfp:对浮点数计算使用严格的规则 super:超类对象或是构造函数
switch:一个选择语句 synchronized:对线程而言是原子的方法或是代码块
this:当前类的一个方法或是构造函数的隐含参数 throw:抛出一个异常
throws:一个方法可能抛出异常 transient: 标志非永久的数据
try:捕获异常的代码块 void:指示一个方法不返回任何值
volatile:确保一个字段可以由多个线程访问 while:一种循环
Java的初步认识的更多相关文章
- Java反射-初步入门
Java反射-初步入门 学反射先了解什么是反射. 百度百科:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动 ...
- 接口自动化:HttpClient + TestNG + Java(三) - 初步封装和testng断言
在上一篇中,我们写了第一个get请求的测试类,这一篇我们来对他进行初步优化和封装 3.1 分离请求发送类 首先想到的问题是,以后我们的接口自动化测试框架会大量用到发送http请求的功能. 那么这一部分 ...
- 关于部门后端所有转向java前初步设想
Java服务有些什么形式?眼下来看主要是下面几类: 1. 执行在Web应用server的Servlet 2. Thrift.PB.Avro等相似框架写的java服务 3. WebService( ...
- Java——单例模式初步
1.7 单例模式初步 好书推荐:java与模式 1.7.1 什么是设计模式 设计模式是在大量的实践中总结和理论化之后优选的代码结构.编程风格.以及解决问题的思考方式.设计模式就像是经典的棋谱,不同的棋 ...
- JAVA面向对象初步知识总结:封装、继承、多态
1.封装 把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是是封装.其结果是一个同时带有特征和行为的数据类型.所谓具体实现的隐藏是通过访问权限控制实现的.JAVA 子类重写继承的方法时,不可以 ...
- Java网络通信初步认知
本文转载自:http://wing011203.cnblogs.com/ 在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础 ...
- JAVA:NIO初步了解
简介: Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式. Java NIO: Ch ...
- java socket初步学习一 ( tcp)
Java socket通信程序: 第一版本: 实现功能: 服务器地址:127.0.0.1 端口:5050 客户机:端口5050 客户端发送字符:“t” 服务器接收到该字符并回复:“r” 流程: 建立 ...
- 对Java的初步的认识:
学习JAVA的优势 1) Java广受欢迎 Java是世界上最受欢迎的编程语言之一,有无限多种方法使用Java.据2016年数据显示,Java被评为最受欢迎的编程语言之一2) Java薪资比较好最新 ...
随机推荐
- [转]就这样,创建了自己的运行时共享库(RSL)
原文地址:http://riaoo.com/?p=1405 博客园的下载地址(版权归原作者) http://files.cnblogs.com/tianlanliao/CustomRSL.zip 创建 ...
- GitHub入门:如何上传与下载工程?
由于经常要在家写代码,所以需要有个能够方便访问代码管理工具.最近尝试了一下GitHub.经过了一翻纠结之后,基本上掌握了他的使用方式. 要使用GitHub需要首先在其网站上进行注册.其官方网站是ht ...
- hdu 2732 Leapin' Lizards(最大流)Mid-Central USA 2005
废话: 这道题不难,稍微构造一下图就可以套最大流的模板了.但是我还是花了好久才解决.一方面是最近确实非常没状态(托词,其实就是最近特别颓废,整天玩游戏看小说,没法静下心来学习),另一方面是不够细心,输 ...
- 利用 Ant 和 Eclipse 有效地提高部署工作效率
读者定位为具有 Java 和 Ant 使用经验的开发人员. 读者可以学习到如何使用 Ant 解决一些多用户开发环境中,根据不同的目标环境编译成不同部署包的问题. 工作场景 现在有一个 web 项目,是 ...
- bjfu1262 优先队列
比较典型的应用优先队列的题.题目是在一个长为n的数组中,依次问m个数中的最小值.那么把值和下标做成一个结构体,放进优先队列里,每次移动窗口就把该T的T掉,剩下的最小值就是答案,复杂度nlogn,轻松a ...
- 句柄(handle)
< Back 句柄,在windows编程中用来标识: *.模块(module) *.任务(task) *.实例(instance) *.文件(file) *.内存块(block of memor ...
- DOM笔记(八):JavaScript执行环境和垃圾收集
一.执行环境 在有关于JavaScript对象或者this的指向问题时,脱离不了的另外一个概念就是执行环境,即上下文环境.执行环境在JavaScript是一个 很重要的概念,因为它定义了变量或函数有权 ...
- 使用U盘安装win7系统,遇到“无法定位现有系统分区”问题
朋友的本子貌似因为安装360wifi而导致一进入系统就蓝屏重启,虽然之后就卸载了360wifi,但是问题依旧,上网Google了一下,发觉网上不少网友诉苦,也有人分析原因,说是因为360wifi导致了 ...
- 微软Azure云主机测试报告
http://www.cnblogs.com/sennly/p/4135658.html 1. 测试目的 本次测试的目的在于对微软云主机做性能测试,评估其是否能够满足我们业务的需求. 2. 测试项目 ...
- mysql 中时间和日期函数应用
一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +-------------------- ...