java基础第一课

电脑语言发展:

第一代:机器语言-》第二代:汇编语言-》第三代:高级语言

汇编语言:结构不好,出来很多高级语言(面向对象、面向过程(B->C语言(贝尔)->C++))

高级语言:fortran(IBM); C#:小型项目;

JAVA特性:一次编写,各处运行。(完全面向对象)

一、 概述

a) The Source for JAVATM technology: www.sun.com

b) 过程中一定要查java api文档。

c) 诞生于1991,sun公司,原名Oak(橡树)。

d) 应用领域

1>*企业级应用:地图,电力系统,华为(协议封装(好维护)),大型ERP系统后台。

2>大型应用服务器:oracle, application,server, IBM webspere, bea weblogic.

3>无线领域:WAP CATE

4>嵌入式领域:手机游戏,JAVA芯片

5>JAVA图形:CIS平台客户端

二、 优点

1. 简单:

风格类似c++;摒弃了C++中容易引发程序错误的地方。

2.面向对象:

支持静态和动态风格的代码继承及重用

3. 健壮(用户不管怎么输入都不会出现异常)

4. 多线程(线程调动机制不一样,产生的结果不定,控制问题)*(线程安全问题,悲观锁,乐观锁)

5. 结构中立跨平台(java核心优势)

6. 安全

7. **一次编写,到处运行**

克服c的问题,GC垃圾回收改善内存泄漏。单一继承。指针问题。

缺点:效率低。内存耗量大(硬件要求高)。

三、JAVA应用程序运行机制

1.计算机的高级编程语言类型

1>编译型:C语言(效率高,一次性把源程序编译成机器语言直接执行,结构化语言,需求变化不大,底层变化不大)

2>解释型:Basic语言

2.JAVA是两种语言的结合(面向对象,需求变化不定)

          **JAVA虚拟机**

先编译成虚拟机接受的字节码文件,虚拟机再相应的具体的机器系统解释成指令。

      **每个系统对应一个虚拟机**

需要为每一个执行系统提供一个虚拟机(统一规范,按Java标准),同一个程序在四个操作系统上运行,提供四个虚拟机(优点:上层都符合同样的规范,拿到相同的字节码文件。

缺点:效率低,转化编译又解释JAVA缺点)

3.JAVA源程序,字节码文件,机器码指令。

四·JAVA的平台相关性

1.JAVA源代码和字节码的与机器无关的

2.JVM是与机器相关的

3.装有不同操作系统的机器上,需要有专门为该操作系统开发的JVM.

七.JAVA的垃圾回收机制(GC)

**垃圾收集GC**

(后台线程)程序执行过程中对内存使用情况跟踪,当对象长时间无人使用时,自动进行(除非对象被设置为持久态)。

优点:改善内存泄漏

缺点;效率低

**Java能真正避免内存泄漏吗?**

答:(c语言容易出现:内存使用不当,内存泄漏,系统崩溃。)不能,只能改善。内存泄漏仍是国际难题。

八. Java分为两类(applet小应用程序(较少使用不安全),应用程序application) 

九.Java应用程序

*4.虚拟机就是一种规范。主方法是虚拟机的入口。虚拟机只能通过类找主方法,因为最开始是没有对象的。

    会向主方法栈帧里传参数,空数组对象,类型string。(没有任何一个元素)标准类库里类中找string类型,创建string类型的变量s.

**String类型和string[]类型**

    String[]类型(args输出string[]类型的对象的地址,返回的就是string[]类型,加载了string[]类型的字节码文件。传一个string[]类型字符串数组对象(空数组对象无元素))

字节码文件:不一定是主类的字节码文件,但一定包含主方法。

HelloWorld运行原理及过程

Java HelloWorld 找到字节码文件

Javac HelloWorld.java 只有一个类编译成一个字节码文件。

**helloworld有几个文件几个对象几个类**

两个文件:源文件,字节码文件(分为四个;string文件,string[]文件,HelloWord.class,system文件。)

五个对象:空对象,HelloWorld常对象,三个输入输出流对象(标准字节输出流对象system.out      /system.in键盘输入/system.err显示器)

三个方法:main方法,println方法,to string方法

两个变量:局部变量:args ; s

一个类:helloworld

零个属性

过程:

省略了导包(默认)Java.Lang.*.包在标准类库中的lang包中找对象。

1.虚拟机加载helloworld,加载内存字节码文件,找主方法,用static通过类找主方法且公有public执行主方法,虚拟机不需要接收返回值(void),主方法不要给虚拟机返回值。

虚拟机会向主方法传参,将局部变量s定为形参(没有确切的值,赋予null),参数为一个字符串数组对象new String[0],

参考上图。空数组对象无元素有值。

2.执行string s,string.class,建string类型的变量,到jdk里的标准类库里找到string的字节码文件和缓冲内存,加载内存的内方法区,(args类型也是string[].class,)

   找到string类型局部变量s,  string.class, s在栈中,s在方法里值是不定的(string会复写s的值),当方法区中常量池无helloworld时建一个helloworld字符串对象。对象的返回值即使对象的值又是对象的地址引用距离,对象的值返回的是对象的地址,字符串常量字符串对象理论上在堆,这个对象特殊。将这个字符串对象给s。输出。

3.在堆上创建三个输入输出对象,system.out标准字节输出流对象等。

4.调用println()方法输出s的值,即helloworld的地址,没有真正输出地址。Jdk会自动调用string对象的to string方法,直接输出对象里的字符串。

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

推荐阅读更多精彩内容

  • 包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...
    清清子衿木子水心阅读 3,798评论 0 27
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,409评论 1 45
  • Django 1.4 事务默认模式是autocommit模式,每个查询都相当于一个事务,每次查询都直接提交comm...
    大富帅阅读 6,051评论 1 1
  • 切断蛊惑人心的“三毒” 抑制私心,为世人为社会尽力,将“纯洁的心灵”释放。好像是极其简单的,但是现实中,我们很多时...
    sandy201704阅读 241评论 0 0
  • 有一个鸡蛋,非常天真的嫁给了石头,在一起磕磕碰碰N年。弄的自己身上伤痕累累,但鸡蛋一直坚持着,终于有一天鸡蛋受不了...
    素美贝儿阅读 209评论 0 1