首页 > 编程语言 >读书笔记——Java的特性

读书笔记——Java的特性

时间:2022-11-01 12:57:35浏览次数:65  
标签:Java 读书笔记 对象 特性 面向对象 内存 多线程 运行

目录

简单性

  • Java语法在设计的时候尽可能接近C++,但是舍弃了一些难以理解和比较少使用的特性,是C++的纯净版,比较容易学习
  • 简单的另一个方面是小,Java的目标之一是支持开发能够在小型机器上独立运行的软件,比如有一个Java微型版,比较适合嵌入式

面对对象

面向过程

  • 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
  • 缺点:没有面向对象易维护、易复用、易扩展
  • 举例子:比如洗衣服,面向过程的步骤应该是:将洗衣服这件事拆分为一个个过程:我打开洗衣机+我放衣服+清洗+烘干

面向对象

何为面对对象,类是对万物的一种高度抽象,不同是事务之间存在着不同的关系,应用在类上。如一个类与外界的封装关系,父类和子类之间的继承关系,一个类和多个类的多态关系,在Java开发中,万物皆对象,将世界的一切行为都概括为对象+行为+对象,而面对对象的三大特征就是封装+多态+继承

  • 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
  • 缺点:性能比面向过程低
  • 面向过程是具体化的,流程化的,解决一个问题,你需要一步一步的分析,一步一步的实现。面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现,至于这个功能是如何实现的,管我们什么事?我们会用就可以了。
  • 面向对象的底层其实还是面向过程,把面向过程抽象成类,然后封装,方便我们使用的就是面向对象了。
  • 如果是面对的对象的洗衣服,会将过程拆分为不同对象的行为 :我:打开洗衣机,放入衣服 洗衣机:洗衣服,烘干,这样更易于复用,扩展,维护,比如不是我衣服,变成别人,换个对象就行,不需要换洗衣机
  • 在与C++主要的不同点是在于多重继承,在Java中用接口这种更简单的概念取代

分布式

  • Java有丰富的例程库,java.lang.net包,用于处理像HTTP和FTP之类的TCP/IP协议,用来网络编程

健壮性

  • Java 的强类型机制、异常处理、垃圾回收机制等都是 Java 健壮性的重要保证。对指针的丢弃是 Java 的一大进步。另外,Java 的异常机制也是健壮性的一大体现。
  • 而且Java与C++相比,采用的指针模型可以消除充血内存和损坏数据的可能性,对于Java程序员,是不知道我们数据的内存地址的

安全性

  • Java要适用于网络/分布式环境,为了实现这个目标,所以安全性是很重要的
  • 常用理解
    • 垃圾回收机制,不会容易让我们的程序发生内存泄漏的问题
    • 异常处理机制,如果我们的程序出现了异常,程序员可以让程序停止运行
    • Java没有指针这种操作,也就是说人是不知道数据的内存,也存在修改内存和毁坏内存的可能
    • 强制类型转换 只有满足强制转换规则才能转换
    • 底层的安全性来说 Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
    • 在运行环境提供了四级安全性保障机制: 字节码校验器 -类装载器 -运行时内存布局 -文件访问限制

可移植性——平台无关性

  • 平台无关性的具体表现在于,Java 是“一次编写,到处运行(Write Once,Run any Where)”的语言,因此采用 Java 语言编写的程序具有很好的可移植性,而保证这一点的正是 Java 的虚拟机机制。在引入虚拟机之后,Java 语言在不同的平台上运行不需要重新编译。比如我们的Int类型必须规定是32位

解释执行

  • Java 程序在 Java 平台运行时会被编译成字节码文件,然后可以在有 Java 环境的操作系统上运行。在运行文件时,Java 的解释器对这些字节码进行解释执行,执行过程中需要加入的类在连接阶段被载入到运行环境中。

多线程

  • 因为摩尔定律(集成电路上可以容纳的晶体管数目在大约每经过18个月到24个月便会增加一倍。换言之,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半)即要走到尽头,我们不再追求更快的处理器,而是着眼获得更多的处理器,而且要让它们一直保持工作
  • Java 语言是多线程的,这也是 Java 语言的一大特性,它必须由 Thread 类和它的子类来创建。Java 支持多个线程同时执行,并提供多线程之间的同步机制。任何一个线程都有自己的 run() 方法,要执行的方法就写在 run() 方法体内。

标签:Java,读书笔记,对象,特性,面向对象,内存,多线程,运行
From: https://www.cnblogs.com/lscCurry/p/16847307.html

相关文章

  • 【Java复健指南08】OOP中级03【完结】-Object类和一些练习
    前情回顾:https://www.cnblogs.com/DAYceng/category/2227185.htmlObject类equals方法"=="与equals的区别"=="是一个比较运算符双等号既可以判断基本类型,又可以判断引......
  • 学习笔记-JAVA安全
    JAVA安全免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.CTFwritupBUU-Java逆向解密代码混淆h......
  • 学习笔记-JAVA代码审计
    JAVA代码审计免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.相关文章一次从内网到外网,黑盒到白盒的......
  • 学习笔记-JAVA反序列化
    JAVA反序列化免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.简介序列化是让Java对象脱离Java运......
  • Java对象的生命周期
    分享知识传递快乐 Java对象的生命周期包括创建、使用、回收三个过程。 1、对象的创建当运行时执行代码遇到new指令、反序列化、反射、克隆时会创建新的对象。创建对象的......
  • Java中static、final、static final的区别
    分享知识传递快乐 finalfinal可以修饰:属性,方法,类,局部变量(方法中的变量)final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变。final修饰的属性跟具体对......
  • mybatis-java中的几类错误
    目录mybatis-java中的几类错误1.第一种错误类型1.1namespace1.2一致性问题1.3构建1.4配置文件导不出来2.第二种类型错误2.1Error:java:错误:不支持发行版本2.2Except......
  • Java链式编程和Lombok实现链式编程
    分享知识传递快乐一、Java链式编程1.什么是链式编程链式编程的原理就是返回一个this对象,就是返回对象本身,以达到链式编程的效果。链式编程比较简单,只要returnthis即可具......
  • java 数组新增
    数组由于一开始就设定了长度,所以是不能直接新增的。但是可以通过其他方法来实现。思路1:通过Arrays.asList()方法转换为ArrayList,调用ArrayList的add方法进行新增,最后再调......
  • Java多线程-线程生命周期(一)
    如果要问我Java当中最难的部分是什么?最有意思的部分是什么?最多人讨论的部分是什么?那我会毫不犹豫地说:多线程。Java多线程说它难,也不难,就是有点绕;说它简单,也不简单,需要理......