Java基础学习分享
一、Java介绍
Java是由原Sun公司(现已被甲骨文公司收购)于1991年开发的编程语言,初衷是为智能家电的程序设计提供一个分布式代码系统。为了使整个系统与平台无关,采用了虚拟机器码方式,虚拟机内运行解释器,而针对每种操作系统均有其对应的解释器,这样Java就 成了与平台无关的语言。
二、Java语言特点
Java是一个广泛使用的网络编程语言,它简单、面向对象,不依赖于机器结构,不受CPU和环境限制,具有可移植性、安全性,并提供了多线程机制,具有很高的性能。
(1)简单性。Java语言虽衍生自C/C++,但它略去了C/C++中指针、运算符重载、多重继承等复杂的概念,并通过自动垃圾收集机制大大简化了程序员的内存管理工作。另外,Java对环境的要求也非常低,它的基本解释器及类仅几十KB,加上标准类库和线程的支持也只有大约200KB。
(2)面向对象。Java是一个完全面向对象的语言,其程序设计集中于对象及其接口,它提供了简单的类机制及动态的接口模型。
(3)分布式。Java是面向网络的语言,通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其他对象。
(4)安全性。一切对内存的访问都必须通过对象的实例来完成,有效的防止黑客使用“特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了由于指针操作失误导致的程序或系统崩溃。
(5)可移植性。与平 台无关的特性使Java程序可以被移植到不同软硬件平台的计算机上,Java自身的类库也实现了与不同平台的接口,使这些类库更容易移植。
(6)高性能。Java字节码的设计可以很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。
(7)支持多线程。多线程机制使应用程序能够并发地执行,同步机制又保证了对共享数据的正确操作。通过使用多线程,程序员可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。
三、Java的运行机制
1、Java虚拟机
Java虚拟机(JVM)可以理解成一个以字节码为机器指令的CPU。首先,Java编译程序将后缀名为.java的Java源程序编译为JVM可执行的代码,运行JVM字节码的工作则由解释器来完成。运行过程分代码的装入、校验和执行三步进行:装入代码的工作由类装载器完成,类装载器负责装入一个程序运行所需要的所有代码;字节码校验器负责代码的校验;解释器负责代码的执行。每种类型的操作系统都有一种对应的JVM,JVM屏蔽了底层操作系统的差异,使Java程序能够做到“一次编译,到处执行”。
2、垃圾收集器
Java垃圾收集器能够自动回收垃圾,即运行时无用对象占据的内存空间。Java语言通过提供一种系统级线程来自动跟踪程序运行时存储空间的分配情况,并在JVM空闲时检查并释放那些可被释放的存储空间。在Java中,对象一旦被创建就会在堆区中分配一块内存,而当对象不再被程序引用时,它就变成一个“垃圾”,所占用的堆空间可被回收以便腾出来给后续的新对象使用。Java垃圾收集器能断定哪些对象不再被引用,并且能够把它们所占用的堆空间释放出来。
Java基础学习分享的更多相关文章
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
- java基础学习总结——开篇
java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...
- Java基础学习笔记(一)
Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...
- java基础学习总结——java环境变量配置(转)
只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
随机推荐
- js弹出层的写法实例
点击后弹出界面,通过判断浏览器长宽自动设定页面宽度和登陆页面位置. <style> /*遮罩层 弹出层*/ .mask { width: 100%; background-color: r ...
- 从XMLHttpRequest中获取请求的URL
在编写Ajax通用错误处理程序时,经常需要记录发生错误的XMLHttpRequest的请求URL.但查询文档,并未找到从XMLHttpRequest中获取请求URL的方法. 在javascript - ...
- Tinyxml2学习
转自http://www.360doc.com/content/13/1223/16/3684846_339528825.shtml,尊重原文 什么是XML? XML全称EXtensible Mark ...
- 06--c++友元类
=======================什么是友元类======================= 当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问.我们 ...
- 怎样批量删除PDF文件中的注释
日常我们在阅读一些PDF文章时候,我们会发现有些PDF文章带有非常多的注释,显得非常不美观,影响了阅读体验.那么PDF文章里的批注应该怎么进行删除呢?怎样批量删除PDF文件中的注释? 操作教程: ...
- 在vue中,让表格td下的textraea自适应高度
1.效果图 2.数据是动态获取的,因此存在一个异步的问题,解决的思路是数据获取到渲染在textarea中以后,获取文字的真实高度,然后把这个高度给textarea 3.具体代码以及步骤 (1)再cre ...
- 自编码器----Autoencoder
一.自编码器:降维[无监督学习] PCA简介:[线性]原矩阵乘以过渡矩阵W得到新的矩阵,原矩阵和新矩阵是同样的东西,只是通过W换基. 自编码: 自动编码器是一种无监督的神经网络模型,它可以学习到输入数 ...
- 15.5.1【Task实现细节】 生成的代码
还在吗?我们开始吧.由于深入讲解需上百页的篇幅,因此这里我不会讲得太深.但我会提 供足够的背景知识,以有助于你对整个结构的理解.之后可通过阅读我近些年来撰写的博客文章, 来了解更加错综复杂的细节,或简 ...
- Java中indexof()的使用
Java中字符串中子串的查找共有四种方法(indexof()) indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置.如果没有找到子字符串,则返回-1. 如果 starti ...
- 4.Spring注解+SpringMVC注解+MyBatis注解(动态sql)
1.创建如图所示项目结构 2.在项目的