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. 构造方法 ...
随机推荐
- java如何设置文件的权限
import java.io.File; 2.import java.io.IOException; 3./× 4.×只能给当前用户赋予对该文件的权限,调用createNewFile()方法默认的权限 ...
- crontab与系统时间不一致
将线上数据库迁移至虚拟机后,运维没有把时间修改. 在后期把时间修改完成后,在数据库上也要修改修改,但是定时任务的备份时间却不在凌晨4点执行,而是在中午12:10分执行. 原因是修改时间后,需要重启cr ...
- oracle从入门到精通复习笔记
为方便大家跟着我的笔记练习,为此提供数据库表文件给大家下载:点我下载 描述一个表用 desc employees过滤重复的部门 select distinct department_id from e ...
- 用JSP实现动态交互
一.什么是JSP? 1.在HTML中嵌入Java脚本代码 2.由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码 3.然后将生成的整个页面信息返回给客户端 二.为什么需要基于B/S技术的 ...
- python tips:dict的key顺序
python3.6+版本中,dict的键值保持插入有序. t = list(range(10)) b = t[:] d = dict(zip(t, b)) print(list(d.items())) ...
- spring学习地址
http://developer.51cto.com/art/201006/205212_2.htm
- 深度遍历DFS
目录: https://zhipianxuan.github.io/ 一.树的DFS 二.二维矩阵的DFS 三.图的DFS 一.题目一:二维矩阵(输出所有路径数) 思路:从起点开始,DFS,直到走到终 ...
- 为什么on用的时候会失效?
困扰了我一个很久的问题今天终于得带解决了,关于 on 的 用法: $("#hasLabels .link").on("click",function(){ .. ...
- Linux C(day01)
Linux是一个和Windows类似的操作系统 通常通过终端软件使用Linux操作系统 终端软件里只能使用键盘不能使用鼠标 可以在终端软件里输入各种命令控制计算机 完成各种任务 clear命令可以清除 ...
- [Ynoi2016]谁的梦
题目大意: 给定$n$个序列,要你从每个序列中选一个非空子串然后拼起来,拼成的序列的贡献为不同元素个数. 支持单点修改,在开始时和每次修改完后,输出所有不同选取方案的贡献和. 解题思路: 窝又来切Yn ...