【编程基础】聊聊如何学习Java——Java的特性

上一篇文章聊了学习编程可能会遇到的心里障碍和为什么学习Java,看了网友们的回复小编很激动,我会积极听取网友们的留言,在我以后的文章中改进。现在说Java语言的特性,每一种语言都有自己的特性,Java语言有哪些特性呢?

简单性:Java编程语言的风格十分接近C++语言,使用C++的人很容易就能掌握Java。Java语言抛弃了C++一些难以理解和学习的东西可以说是C++的一个纯净版。

面向对象:简单的说面向对象就是可以把一个事物看成(抽象)为一个类,它有一些属性和行为,它代表了一类事物的特性。这个特性让编程人员更多的精力是放到数据和对象上。

健壮性:Java的强类型机制、异常处理、垃圾自动收等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。

安全性:Java适用于网络和分布式环境,如果不安全那是不行的。Java语言在一开始就被设计成能够防范各种攻击,例如:禁止运行时堆栈移出,这是蠕虫等病毒常用的攻击手段。

结构中立(一次编译,处处运行):Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后只要有Java运行时系统就可以在许多处理器上运行。

可移植性:与C/C++不同,Java规范中明确了基本数据类型的大小,消除了在代码移植时主要令人头痛的问题。比如在Java中int型就是32位整数,在C/C++中有可能是16位整数也可能是32位整数。

解释型:Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

高性能:Java语言应为有垃圾回收等额外的开销所以会比C++慢一些,但是现在Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++,并且现在硬件性能过剩,Java对于性能的影响已经很小。

多线程:多线程技术可以充分利用硬件资源,给用户带来更好的用户体验和实时行为。

动态性:Java比C/C++更加具有动态性。Java程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类。

没有“放诸四海而皆准”的语言,每一种语言的设计都是为了更好的解决人们实际编程中遇到的问题,没有任何一种语言能够在实际编程中完全胜任。Java语言的成功是把原本复杂的事情(联网,多线程等)让你很容易的实现,减少了在编程中遇到指针错误,提高了编程和调试的效率。

Java语言的这些特性你看完之后可能记不住太多,不过呢没关系,等你具体学习Java语言过程中慢慢体会。下一篇文章会讲解Java环境配置和编写一个Java小程序。

另外有网友说初学Java看什么书好,小编认为可以看看《Java编程思想》,网上PDF格式的很多,网友们可以搜索下载。编程有技巧,但是前期的基础部门是没有技巧的,就是要看书学习才能记住。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习养成记

静态爬虫与地址经纬度转换(python)

“ 本文通过一个小例子,展示了用python进行静态爬虫的方法,并且将爬取下来的城市列表,通过调用百度地图api,返回对应经纬度。” ---- requests...

3658
来自专栏程序员宝库

看似简单的 Windows 记事本,其实维护起来并不简单

相信大家对 Windows 系统自带的记事本程序都不会陌生,在座的各位或许还有用它来写代码的经历。看上去它的功能非常简单,但你能否想到即便功能如此简单的程序,也...

1145
来自专栏Java编程技术

常用开源框架中设计模式使用分析- 门面模式(Facade Pattern)

门面模式是一种结构性模式,它通过新增一个门面类对外暴露系统提供的一部分功能,或者屏蔽了内部系统的复杂性,对外部仅仅暴露一个简单的接口,或者通过调用不同的服务对外...

721
来自专栏carven

浅谈js的date对象对时间字符串的解析

最近的时间都在开发社团内部的应用–隧道口,虽然只有简单的几个页面,但是依然是遇到了不少坑。 其中 date 的时间处理就是一个。

630
来自专栏个人随笔

Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述

第1章 Java程序设计概述 1.1 Java程序设计平台  具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求.  可移植...

26210
来自专栏落影的专栏

GPUImage详细解析(八)视频合并混音

回顾 GPUImage源码解析、图片模糊、视频滤镜、视频水印、文字水印和动态图片水印GPUImage的大多数功能已经介绍完毕,这次的demo是源于简书的一位简友...

2885
来自专栏Crossin的编程教室

Python 实战(3):更多的页面

现在我们网站已经有了一个简单的页面、一段简单的请求处理代码和一个简单的数据库。上次最后我剧透了下,之后将会通过豆瓣电影的 API 获取更多的电影数据。不过在此之...

2635
来自专栏斑斓

面向接口设计与角色接口

问题:在做项目的时候,是不是所有包含非静态方法的类,都要写一个接口?是因为这样的目的是为了解耦,然后通过DI注入实现吗?

671
来自专栏程序员互动联盟

如何阅读大牛的代码

一、代码阅读的必要性 阅读别人的代码作为开发人员是一件经常要做的事情。一个是学习新的编程语言的时候通过阅读别人的代码是一个最好的学习方法,另外是积累编程经验。如...

2884
来自专栏快乐八哥

JavaScript中this关键字使用

在Web开发中,前端掌握JavaScript,后台掌握PHP成为一个趋势。当然后台掌握C#/Java,当然还有Python,Ruby其中的一种,都是可以的。其实...

1839

扫码关注云+社区