• 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:一种循环

                                                                                   

  • 相关阅读:
    bzoj 4539 [Hnoi2016]树——主席树+倍增
    bzoj 4137 [FJOI2015]火星商店问题——线段树分治+可持久化01trie树
    bzoj 4025 二分图——线段树分治+LCT
    LOJ 121 「离线可过」动态图连通性——LCT维护删除时间最大生成树 / 线段树分治
    bzoj 3572 [Hnoi2014]世界树——虚树
    bzoj 4650(洛谷 1117) [Noi2016]优秀的拆分——枚举长度的关键点+后缀数组
    洛谷 P3957 跳房子 —— 二分答案+单调队列优化DP
    洛谷 P1578 奶牛浴场 —— 最大子矩形
    bzoj 1510 Kra-The Disks —— 思路
    bzoj 1657 Mooo 奶牛的歌声 —— 单调栈
  • 原文地址:https://www.cnblogs.com/JustOnly/p/4430746.html
Copyright © 2020-2023  润新知