《java核心技术卷i》第一章主要内容包括三点:

1:Java白皮书的关键术语:描述Java的十一个关键字:
2:Java applet
3 :关于Java的常见误解
 
1:第一章:Java白皮书的关键术语:描述Java的十一个关键字:
简单性,面向对象,分布式,健壮性,安全性,体系结构中立,可移植性,解释型,多线程,高性能,动态性
部分介绍如下:
简单性:Java语法相当于C++,为一个“纯净版本”,
Java去掉了C++中的头文件,指针运算(指针语法),结构,联合,操作符重载,虚基类等。
总体来说,去掉这些相对复杂的语法是利大于弊的。
 
面向对象:Java是一门纯面向对象的语言,面向对象的重点在数据(对象)及对象接口上。
在Java中,“万物皆对象”,即所有的数据都是一个对象,包括数字,字母等,所有类的基类都直接或间接继承与Object,Java 没有C++中的多继承,但可通过接口来实现多继承的需求(Java中一个类只能继承一个class,但可以实现多个接口)
 
健壮性:Java对代码进行早期安全问题检测,后期动态(运行时)检测,采用的指针模型可以消除重写内存和损坏数据的可能性
Java通过指针模型 避免了C++出现野指针等一系列指针问题.
 
安全性:Java实用于网络/分布式环境,能够构建防病毒,防篡改的系统,包括:
运行时堆栈溢出,破坏自己的进程空间之外的内存,未经授权读写文件。不可信代码在沙箱环境执行,不影响主系统
 
体系结构中立:编译器生成体系结构中立的目标文件格式,为一段编译过的代码,只要有Java运行时系统,这些代码就可以在处理器执行。
 
可移植性:Java的数据类型具有固定大小,如int类型在C++中根据32位系统位16位,64位系统中位32位,在Java中永远位32位
其原因是Java代码需要虚拟机解释成机器码,再交给操作系统执行的,
关于虚拟机的知识:立个flag,博客写出来。https://blog.csdn.net/ningjia2013/article/details/22686433
 
多线程:Java是第一个支持并发程序设计的主流语言
 
2:Java applet
在网页中运行的Java程序成为 applet 。要使用applet,需要启用Java的web浏览器执行字节码。
 
3 :关于Java的常见误解
1 Java 是html的扩展。
Java是一种程序设计语言,HTML是一种描述网页结构的方式。
2 使用xml,不需要Java。
xml是一种描述数据的方式。
3 Java 将成为适用所有平台的通用型编程语言。
理论上是可行的,实际上不同的平台有更适用的语言,如做IOS开发会用OC,Swift,浏览器的处理用JavaScript,
Windows程序通常用C++,C#,Java在服务器端编程和跨平台客户端应用较有优势
4 Java是解释型的,因此对于关键的应用程序速度太慢了。
早起的Java是解释型的,现在Java虚拟机适用即时编译器,目前Java代码的运行速度与C++相差无几
5 JavaScript是Java的简易版。
Java是一种程序设计语言,JavaScript是在网页中适用的脚本语言。

java的优点和误解 《java核心技术卷i》第一章的更多相关文章

  1. TCP/IP详解 卷1 第一章概述

    第一章概述 1.2 分层 网络编程通常分不同层次进行开发,每一层负责不同的通信功能. 一个协议族比如TCP/IP,通常是一组不同层次上多个协议的组合.一般可以认为是是四层协议系统: 链路层:有时也称作 ...

  2. 虚拟机上的Linux Java开发环境部署记录(VirtualBox+Ubuntu)第一章-基础环境搭建

    创建虚拟机时需注意三点: 在BIOS中开启Intel VT,以支持64位虚拟机系统: 对于Ubuntu 16以上版本,至少分配10G以上初始控件. 增加一块网卡,选择Host-Only网络,用于主机和 ...

  3. 【java并发编程艺术学习】(二)第一章 java并发编程的挑战

    章节介绍 主要介绍并发编程时间中可能遇到的问题,以及如何解决. 主要问题 1.上下文切换问题 时间片是cpu分配给每个线程的时间,时间片非常短. cpu通过时间片分配算法来循环执行任务,当前任务执行一 ...

  4. 徒手用Java来写个Web服务器和框架吧<第一章:NIO篇>

    因为有个不会存在大量连接的小的Web服务器需求,不至于用上重量级服务器,于是自己动手写一个服务器. 同时也提供了一个简单的Web框架.能够简单的使用了. 大体的需求包括 能够处理HTTP协议. 能够提 ...

  5. 从零开始学 Java - 搭建 Spring MVC 记录云创的日子 第一章

    2017年11月29日 来到新项目,需要用到Spring MVC ,那么我就开始记录我这次的学习. Spring MVC 框架是围绕一个 DispatcherServlet 来设计的,这个 Servl ...

  6. UNIX网络编程卷1 第一章 简介 读书笔记。

    基本没讲什么,一点点计算机网络发展史,一点点socket()简单介绍,最重要的是1.3节协议无关性. 协议无关性: 贯穿整本书的一个重要特性,他主要强调的是 socket是网络协议无关的编程接口. s ...

  7. Android深度探索-卷1第一章心得体会

     本章介绍了安卓系统移植与驱动开发的概述,安卓的系统架构有四层:1 Linux内核,2 c/c++代码库, 3 Android SDK API, 4 应用程序 在读的过程中看到了专业名词,查了查,长点 ...

  8. 徒手用Java来写个Web服务器和框架吧<第二章:Request和Response>

    徒手用Java来写个Web服务器和框架吧<第一章:NIO篇> 接上一篇,说到接受了请求,接下来就是解析请求构建Request对象,以及创建Response对象返回. 多有纰漏还请指出.省略 ...

  9. Java核心技术卷阅读随笔--第4章【对象与类】

    对 象 与 类 4.1 面向对象程序设计概述 面向对象程序设计(简称 OOP) 是当今主流的程序设计范型, 它已经取代了 20 世纪 70 年代的" 结构化" 过程化程序设计开发技 ...

随机推荐

  1. 【转】CSS中的浮动和清除浮动

    以下转自<CSS中的浮动和清除浮动,梳理一下!> 浮动到底是什么? 浮动核心就一句话:浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素.请默念3次! 浮动最初设计的目 ...

  2. linux性能优化参数小节

    总结一些和性能相关的常见参数 内核相关参数 位于/etc/sysctl.conf文件,向文件中添加 用sysctl -a可以查看默认配置 修改后可以通过sysctl -p执行并看看有没有错误 例如设置 ...

  3. ionic3 生成android 如何控制versionCode版本号

    ionic 项目中生成 android 如何控制版本号呢. 1.在项目的配置文件下的config.xml 来我们可以看到 <widget id="com.ionicframework. ...

  4. 征服诱人的Vagrant!

    一.背景 ​ 最近要开始深入学习分布式相关的东西了,那第一步就是在自己的电脑上安装虚拟机,以前在Windows平台,我选择用VMware Workstation作为虚拟机软件,现在在Mac系统下,感觉 ...

  5. CentOS7 配置FTP服务器

    1.安装vsftpd yum -y install vsftpd 2.在firewalld中添加规则 为确保成功 先启动firewalld服务 systemctl enable firewalld s ...

  6. HashMap在JDK1.7中可能出现的并发问题

    在JDK1.7及以前中,如果在并发环境中使用HashMap保存数据,有可能会产生死循环的问题,造成cpu的使用率飙升.之所以会发生该问题,实际上就是因为HashMap中的扩容问题. HashMap的实 ...

  7. Nginx编译安装lua-nginx-module

    lua-nginx-module 模块可以将Lua的强大功能嵌入NGINX服务器. 下载Nginx源码 如果已安装Nginx,需要查看当前安装版本的编译参数: $ /usr/local/nginx/s ...

  8. 微信支付之手机H5支付实践

    最近项目中支付部分涉及到微信支付,使用的是h5支付,官方文档中是没有demo的,所以摸着石头过河,将踩过的坑记录如下. 一 应用场景 H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前 ...

  9. jQueryh插件imgareaselect

    1.插件介绍 imgareaselect 是一个 允许用户使用简单.直观的点击.拖动界面图像选择矩形区域的jQuery插件.该插件可用于 web 应用程序中轻松实现图像裁剪功能,以及其他功能,如照片标 ...

  10. MHA+ProxySQL实现读写分离高可用

    最近在研究ProxySQL,觉得还挺不错的,所以就简单的折腾了一下,ProxySQL目前也是Percona在推荐的一个读写分离的中间件.关于详细的介绍可以参考官方文档.https://github.c ...