新学期伊始,我心中既充满了期待和希望,又有些许激动和感慨。期待的是即将接触许多新的知识,期待未来比过去过的更加踏实有趣,期待遇到更好的人和事等等。当然,面对从未了解过的新事物时,我想每个人的想法都大致相同吧!一周的学习时间过去了,我对java的了解也是初步的,下面我将我的学习经历以及我对java的理解分享给大家。

一.历史

在1991年时候,James Gosling在sun公司的工程师小组想要设计这样一种小型计算机语言。该语言主要用于像电视盒这样的消费类电子产品,这些电子产品有一个共同的特点:计算处理能力和内存都非常有限。
所以要求:
       语言必须非常小且能够生成非常紧凑的代码,这样才能在这样的环境中执行。另外,由于不同的厂商选择不同的CPU,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。所以,将这个语言命名为“Green”,类似于绿色软件的意思。后来,改名将OAK。橡树的意思。改名后发现已经有一种语言叫这个名字了,再改名叫JAVA。

Java时间简史:
       1991年,Sun公司的Green项目,Oak
       1995年,推出Java测试版
       1996年,JDK1.0
       1997年,JDK1.1
       1998年,JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版本,更名为Java2。
       2004年,J2SE 5.0 (1.5.0)  Tiger老虎
       2006年,J2SE 6.0 (1.6.0)  Mustang野马

二.语言特点

1.简单性

Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。

2.面向对象

Java是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。

3.分布性

Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。

4.编译和解释性

Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。

5.稳健性

Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。

可靠性方面最重要的增强之一是Java的存储模型。Java不支持指针,它消除重写存储和讹误数据的可能性。

异常处理是Java中使得程序更稳健的另一个特征。异常是某种类似于错误的异常条件出现的信号。使用try/catch/finally语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。

6.安全性

Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。

7.可移植性

Java使得语言声明不依赖于实现的方面。例如,Java显式说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述)。

Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写。

8.高性能

Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。

Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。

9.多线索性

Java是多线索语言,它提供支持多线索的执行(也称为轻便过程),能处理不同任务,使具有线索的程序设计很容易。Java的lang包提供一个Thread类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。

10.动态性

Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。

三.编程开发

1.编程环境

JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK。

另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境。 JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可。

2.编程工具

Eclipse:一个开放源代码的、基于Java的可扩展开发平台。

NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。

IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。

MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境。

EditPlus:如果正确配置Java的编译器“Javac”以及解释器“Java”后,可直接使用EditPlus编译执行Java程序

3.JDK的命令工具

  JDK的最重要命令行工具:

  java:启动JVM执行class

  javac:Java编译器

  jar:Java打包工具

  javadoc:Java文档生成器

4.运行环境的搭建

<1>去网上下载jdk(jdk是一个编译器就是解释执行java代码的

<2>配置path和classpath的环境变量。去我的电脑 属性 高级 里面的 系统变量那配置你的path 和classpath的环境变量。

<3>.测试。 打开dos界面输入javac 按enter 如果出现很多的英文 就说明你的环境变量配置好了。到了这一步也就说明你的java环境弄好了。

5.编译运行方式

(1)通过命令行方式编译运行。

(2)通过集成开发环境编译运行。

四.Java初体验

通过一周时间的学习和理解,我初步感受到了java这门语言的强大。它跟c语言在语法上有很多相似之处,却又是完全不同于其他语言的一门面向对象的高级语言。我深知java对一个程序员的重要性,所以在今后的学习过程中,我会更加努力。因为我发现我已经深深爱上了这门语言!

 

 

  

转载于:https://www.cnblogs.com/twdc136/p/7440105.html

201671010133 2016-2017-2 《java程序设计》 初学java!相关推荐

  1. 201671010140. 2016-2017-2 《Java程序设计》java学习第一周

       java学习第一周        本周是新学期的开端,也是新的学习进程的开端,第一次接触java这门课程,首先书本的厚度就给我一种无形的压力,这注定了,这门课程不会是轻松的,同时一种全新的学习方 ...

  2. 【Java程序设计】Java基础类库简介

    Java基础类库简介 文章目录 Java基础类库简介 一.Java基础类库介绍 二.语言包(java.lang) (1)数据类型包裹类 1.生成数据类型包裹类对象的方法 2.得到基本数据类型数据的方法 ...

  3. 201671010117 2016-2017-2 《Java程序设计》Java第二周学习心得

    Java第二周学习心得 这一周老师在周四进行了课堂测验,完全出乎我的意料,我以为老师会在前两周上课讲一下,由于我在课前没有好好准备,反转课堂来的有的措手不及,那些题很多很多都不会,也错了很多,班上有很 ...

  4. 201671010117 2016-2017-2 《Java程序设计》Java第十七周学习心得

    Java第十七周学习心得 这一周老师对线程的内容进行了详细讲解,包括线程创建的两种技术,和线程的优先级属性及调度方法,对于布置的实验作业中,实验九中存在一点问题,程序运行不出来,后来跟同学商量探讨没有 ...

  5. 【Java程序设计】Java上机实验(二)

    实验二.数组     一.实验目的: 1.学会使用一维与二维数组管理简单数据. 2.学会编写简单的菜单驱动(命令行式)的Java程序 二.实验环境: BLUEJ 三.实验内容: (写出主要的内容) 1 ...

  6. java se8_初学java是选java se7还是java se8好?

    我们通过一个小程序来比较下java7 与 java8 性能的差距 C# .NET 4.5: 2.412秒 java7 运行时间:6秒 java8 运行时间:2秒 复制下面的代码,在同一台计算机上,分别 ...

  7. 公交系统java程序设计,基于JAVA的JSP城市公交查询系统,源码分享

    今天将为大家分析一个城市公交查询系统的设计与实现(公交查询系统是为推进地名信息服务工作,软件基于MYSQL数据库,只要将公交站点等信息输入数据库,就可以很快构建成一个简单.实用的本地公交查询系统.分析 ...

  8. 201671010145 2016-2017《Java程序设计》JAVA语言中,异常处理有哪几种方式?

    有两中方式:1.捕获异常,自己处理. 2.throw出去,让别人处理. 举个例子:public class A{ try{ 可能放生异常的语句... }catch(Exception e){ e.ge ...

  9. java程序设计_Java程序设计:学习笔记(4-5)(未完工)

    声明: 本文内容基于"吉首大学软件学院-Java程序设计(Java面向对象程序设计)"网课与个人实践经验修改编写而成.本文属于Arcadia项目组成部分.若有错误或不足之处存在请联 ...

  10. 201671010135 2016--2017java程序设计对java的初步认识和对第一,二章的总结(0)

    201671010135  2016--2017<java程序设计>对java的初步认识和对第一,二章的总结(0) java是一种程序语言设计.html是一种描述网页结构的方式.除了用于在 ...

最新文章

  1. HDFS副本设置——默认3
  2. python编程入门课 视频教程-Python编程零基础入门课
  3. 同一批电脑cpu序列号_新电脑到手后,你会验货吗?怎么检查新电脑?
  4. python读取数据库数据,读取出的中文乱码问题
  5. python 自动登录网站_python实现网站用户名密码自动登录功能
  6. mysql备份文件无法回退_mysql备份灵活恢复
  7. [Javascript]jquery $(document).ready() 与window.onload的区别
  8. 在switch时使用枚举类型
  9. 刨根究底字符编码之二——关键术语解释(下)
  10. 深恶痛绝……残忍虐杀何时终止?
  11. 华为分析提供行业差异化分析服务,全面赋能开发者精益运营
  12. 悟空,削他!善了个哉的……
  13. android 获取iccid imsi
  14. 愤世嫉俗的程序员,总在网上发表言论,当起了“键盘侠”
  15. 数据地图绘制工具汇总
  16. C语言用循环写出新年祝福语图案,如何用C语言写新年祝福
  17. oracle where 后面的条件中|| 是什么意思
  18. windows 系统错误码总结
  19. DHT11 数字温湿度传感器实验
  20. 在 Linux 下开发和下载8051单片机程序

热门文章

  1. 不用空格怎么打两个空格_身份证号码中有空格,你让我怎么替换?
  2. mac input 不支持xls_如何将PDF转换成xls格式的表格
  3. 简谈百度坐标反转至WGS84的三种思路
  4. mysql多表结果合并查询
  5. 解决Discuz安装时报错“该函数需要 php.ini 中 allow_url_fopen 选项开启…”
  6. 2.2 Java内存介绍-运行时数据区
  7. java jdk中优先队列的实现
  8. C语言实现matlab的interp2()函数
  9. Android Service中的android:process=:remote
  10. 在一线城市做Java开发如何月薪达到两万,需要技术水平达到什么程度?