Java语言入门

Java的发展史

java是sun公司在1995年推出的一种面向对象的编程语言,特别适用于Internet应用程序的开发。

java语言的特点

简单,面向对象,分布式,解释,健壮,安全,结构中立,可移植,高性能,多线程,多态

简单

风格类似于C++,但是摒弃了容易出错的指针和内存管理,提供了丰富的类库

面向对象

面向对象是java的重要特性,不同于C语言的面向过程。

分布式

java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此java可以通过URL打开并访问网络上的对象,访问方式跟访问本地文件系统一样,为分布环境尤其是internet提供动态内容很复杂,但是java使我们跟容易实现。

健壮

java致力于检查程序在编译和运行时的错误。类型检查帮助检查在开发早就发现的错误。java自己操纵内存减少内存出错的可能性,制动检测数组越界的错误,这些功能缩短了开发时间。
java提供的检测功能:Null指针检测,数组越界,异常出口,字节代码校验

结构中立

为了使用java语言作为网络的一个整体,java将他的程序编译为结构中立文件格式。只要有java运行系统的机器都能执行,运行调试

安全

java的安全性从两个方面得到保证,在java中像指针和释放内存等C++的功能被摒弃,避免非法内存操作,另一方面,当java用来创建浏览器内容时,语言功能能和一些浏览器本身提供的功能结合起来。
java语言在机器上执行前,会经过很多次的测试:经过代码校验,检查代码段的格式,检测指针操作,对象操作是否合法以及试图改变一个对象的类型等测试过程。
1.Byte-code校验
如果byte-code通过代码校验,没有返回错误,我们可以知道:

  • 代码没有堆栈上溢出和下溢出
  • 所有操作的代码参数类型都是正确的
  • 没有发生非法数据转换,如将整数型转换成指针
  • 访问对象操作是合法的
    2.类装载
    Class Loader 通过将本机类与网络资源类的名称分开,来保持安全性。因为调入类时总要经过检查,这样避免了特洛伊木马现象出现。
    从网络上下载的类被调进一个和源相关的私有的名字域。当有一个私有类访问另一个类时,build-in(本机类)首先被检查,然后检查相关类。这样避免了破坏本机类的情况出现。

可移植

同体系结构无关的特性使得java应用程序可以在配置java解释器和运行环境的任何计算机系统运行,这成就了java应用软件便于移植的良好基础。
但是这样还不够,如果基础数据类型设计依赖与实现,将会给程序的移植带来很大的不便,因此java通过定义独立于平台的基本数据类型以及其运算,java数据得以在任何硬件平台上保存一致。

解释

java解释器(运行系统)能够直接运行目标代码的指令。链接程序比编辑程序需要的资源少,所以程序员可以花更多的时间在创建源程序上。

高性能

如果解释器速度不慢,java可以在运行时直接将目标代码翻译成机器指令。Sun系统用直接解释器一秒钟可调用300000个过程。

多线程

Java提供的多线程功能使得在一个程序中能够多个小任务。多线程带来的更大的好处是更好的交互性和实时控制性能(ios也是如此)。

动态

Java的动态特性是其面向对象设计方法的扩展。它允许程序动态地装入运行过程中所需要的类。java从如下几个方面来实现。java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传给解释器,再有解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。这样,一个在存储器生成的对象不再编译过程中决定,而是延迟到运行时用解释器确定,因此对类中的便利和方法进行更新不会影响现存代码。解释执行字节码是,这种符号信息的查找和转换过程仅在一个新的名字出现才运行一次,随后代码便可全速执行。
在运行是确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。
Java还简化了好用一个升级的或全新的协议方法。如果你的系统运行Java程序时遇到了不知怎么处理的程序,Java能自动下载你所需要的功能程序。


Java程序设计基础

程序结构

Java语言的源程序代码由一个或者多个编译单元(compilationunit)组成,每一个编译单位只能包含下列内容(空格和注释除外):
* 一个程序包语句(package statement)
* 入口语句(import statement)
* 类的声明(class declarations)
* 界面声明(interface declarations)
每个Java的编译单元可包含多个类或者界面,但是每一个编译单元最多只能有一个类或者界面是公共的。

组成Java语言的元素

Java语言主要由五种元素组成:标识符、关键字、直接量、运算符和分隔符。

标识符

  标识符:程序中所用的符号名称(类、对象、方法、变量、常量等的名称
  命名规则:以字母、下划线(_)或$符号开头,其后可跟任意数目的字母、数字、下划线和$符号

注意:1.数字不能作标识符的开头
2.除了下划线与$符号以外,其余的符号不用
3.不能用关键字作标识符
4.Java语言区分大小写(大小写敏感)
Java语言的书写约定:
类:每个单词的首字母大写;MyClassProgram
方法、变量:第一个单词的首字母小写;其后单词首字母均大写myMethod()、char_MyClass_Flag
常量:均以大写字母表示,多个单词用下划线分开IN_CHARACTER、WINDOW_DESTROY

关键字

   语言本身使用的标识符叫关键字。它具有特定的语法意义

分隔符

   注释://  —单行注释
            /* 一行或多行注释*/
            /**文档注释**/
   空白符:空格、回车、Tab、换行
   普通分隔符:;  语句结束标志  
                      { }复合语句、方法体、类体、数组初始化
                      ,  分隔方法的参数和变量的说明
                      :  说明语句标号

基本数据类型类

数据类型

常量,变量和表达式
基本类型:整型:short、int、long
浮点型:float、double
布尔型:boolean(true、false)
字符型:char
字节型:byte
数组 :一维数组(myclass[]),多维数组(my class[][])


除了基本数据类型外, Java还包含一种引用数据类型(复合数据类型)
复合数据类型:类(包括数据类型类)
接口

Java的数据类型与C的数据类型有所不同:
★Java语言中同一种数据类型在任何平台上都占用相同的内存长度
★Java语言的每种数据类型都对应着一个缺省数值(任何数据类型的变量的取值总是确定的)

基本数据类型

      Java语言定义了八种基本数据类型,利用基本数据类型可以构造复杂数据结构满足各种需要。

直接量(常量)

      它是在程序运行中不变的量,其作用是为变量赋值或参与表达式运算
       ◆字符常量:由单引号括起的单个字符 ( ‘A’、’a’等)
       ◆字符串常量:由双引号括起的一串字符(如:“theprogram”等)
       ◆布尔型常量:true与false
       ◆数字常量:常用的阿拉伯数字(如不同进制的整形数、浮点数等)其他:
       ◆转义字符:具有特殊含义不能用一般方式表示的字符
       ◆字符串的连接操作符(+):它可以将两个或更多的字符串常量串联在一起,形成一个更长的字符串

变量

        变量:在程序中,其值可变的量(代表保存数据的内存单元)
        使用变量的原则:先定义,后使用。(使变量与内存建立联系—引用)
       变量的定义(声明):定义变量名,定义变量的数据类型
       1、变量的定义:
        类型  变量名[,变量名] [,变量名]  [,……]
        类型:变量名=变量初值,…… , ……
        举例:
                  charMyCharacter=‘B’;
                  long MyLong=-375;
                  int  m_iCount=65536;
                  double m_dScroe;
        2、变量的使用范围:
          其范围在定义语句所在的大括号内(包括其中嵌套的大括号)
          一般地:类开始时声明的变量是全局变量;在方法和语句块中声明的变量是局部变量
        3、数据类型转换
          类型转换:将等号右边数据类型转换成等号左边的另一种数据类型
             隐式转换(短数据类型=>长数据类型):
             ◆赋值时转换:将短数据类型(占用内存较少)转换成长数据类型(占用内存较多)
              int i=5;   long j=i;
             ◆计算时转换:当较短的数据类型与较长的数据类型一起运算时,系统会自动地将较短的数据类型转换成较长的数据类型
              int i=5;   long j=10 ;  k=i+j;
            强制转换(长数据类型=>短数据类新):
            将较长的数据类型转换成较短的数据类型,必须用强制性转换
            格式:(数据类型)变量名或表达式
            byte MyByte=10;      Int MyInteger=-1;
            MyInteger=MyByte;   MyByte=(byte)MyInteger;
            注意:从较长的数据类型转换到较短的数据类型时可能丢失数据            

今天就先到这了!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,581评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,184评论 11 349
  • 准备去看美队三的时候其实并没有报多大的期待,可能是因为前不久才看过超蝠撕逼。说实话,我真的没有想到漫威竟然可以把内...
    墟日阅读 261评论 0 1
  • 我和某人的事终于告一段落了。他决定不再烦我了,而我已经几天没有他的消息了。这种时候让我内心小小的庆祝一下。。虽然对...
    山下的白树林阅读 230评论 0 0