重拾Java(一)
来源:互联网 发布:怎样开淘宝生意才最好 编辑:程序博客网 时间:2024/05/02 02:11
重拾Java,把自己的疑问写下来:
1.为什么Java开发分为3类:Java桌面应用程序,JavaWeb应用程序和JavaApplet程序?
http://www.cnblogs.com/sun-/p/5592244.html
Application和Java Applet的区别。
Java语言是一种半编译半解释的语言。Java的用户程序分为两类:Java Application和Java Applet。
这两类程序在组成结构和执行机制上都有一定的差异,主要体现在以下几方面:
- 运行方式不同
Java Application是完整的程序,可以独立运行;
Java Applet程序不能单独运行,它必须嵌入到用HTML语言编写的Web页面中,通过与Java兼容的浏览器来控制执行。 - 运行工具不同
Java Application程序被编译以后,用普通的Java解释器就可以使其边解释边执行;
Java Applet必须通过网络浏览器或者Applet观察器才能执行 - 程序结构不同
每个Java Application程序必定含有一个并且只有一个main方法,程序执行时首先寻找main方法,并以此为入口点开始运行。含有main方法的那个类,常被称为主类,也就是说Java Application程序都含有一个主类;
Applet程序则没有含main方法的主类,这也正是Applet程序不能独立运行的原因。尽管Applet没有含main方法的主类,但Applet一定有一个从 java.applet.Applet派生的类,它是由Java系统提供的。 - 受到的限制不同
Java Application程序可以设计成能进行各种操作的程序,包括读/写文件的操作;
Java Applet 对站点的磁盘文件既不能进行读操作,也不能进行写 操作。然而,由于Applet的引入使Web页面具有动态多媒体效果和可交互性能,这使由名为超文本、实为纯文本的HTML语言编写成的Web页面真正具有了超文本功能不但可以显示文本信息,而且还可以有各种图片效果和动态图形效果,从而使页面显得生动美丽;另外,Applet使Web页面增加了按钮等功能,从而增加了交互性。
2.Java中main入口为什么要写在类里面?以及为什么是public static修饰?
http://www.cnblogs.com/xwdreamer/archive/2012/04/09/2438845.html
在java中,main()方法是java应用程序的入口方法。java虚拟机通过main方法找到需要启动的运行程序,并且检查main函数所在类是否被java虚拟机装载。如果没有装载,那么就装载该类,并且装载所有相关的其他类。因此程序在运行的时候,第一个执行的方法就是main()方法。通常情况下, 如果要运行一个类的方法,必须首先实例化出来这个类的一个对象,然后通过”对象名.方法名()”的方式来运行方法,但是因为main是程序的入口,这时候还没有实例化对象,因此将main方法声明为static的,这样这个方法就可以直接通过“类名.方法名()”的方式来调用。
3.在学习过程中遇到的,Java与C++的一些区别:
(1)Java的函数入口在与文件同名的public类的main函数,并且方法里面不能嵌套定义函数;
(2)Java的每一个成员变量都要加上访问限定符,C++写一次就行;
(3)Java将对象作为参数传递的时候,传入的是引用,在方法内更改参数的值即是更改原本变量的值,在C++中是临时变量,不影响原来的值;
(4)Java没有多继承,一个子类只能继承一个父类(访问限定符的限制相当于C++的公有继承),但是可以实现多个接口; 如果想访问父类的私有/隐藏的属性或方法,可以用super关键字;
(5)Java类的静态属性在static代码块中初始化,C++的类静态数据成员在类外初始化(如果没有初始化都默认初始为0);
(6)Java中对象的赋值操作实际上是操作的句柄,比如Test t1 = new Test(10); Test t2 = new Test(9); t1=t2;
赋值之后t1和t2句柄相同,指向t2对象,t1原本的句柄丢失;而C++中对象赋值是两个不同的对象,赋值分为浅拷贝和深拷贝,深拷贝需要重载拷贝构造函数,新开辟一段内存把数据一个一个复制过来。
- 重拾Java(一)
- 重拾Java(一)
- 重拾 Java(一): 对象
- 【重拾Effective Java】一
- 重学java(一)
- java重构(一)
- 重拾java基础(一):java概述总结
- Java重难点面试(一)
- 重拾springmvc(一)
- Java重拾系列(一)Java线程与线程池
- Java重构示例一
- java回炉重造(一)
- 重拾Java(五)
- 重拾Java回忆录(一):Java01基本数据类型和基本语句
- 重拾C++(一):引用高级
- 重拾C++ (一)开始
- 重拾数据结构(一)
- 重拾Python 一
- iOS AVPlayer音频开发
- 海航陈峰带领海航艰难起飞
- python导入模块的三种方法
- Android的.gitignore文件
- BZOJ 4006: [JLOI2015]管道连接
- 重拾Java(一)
- 如何搭建量化投资研究系统之三(工具篇quantstrat)
- struts2+jquery+Ajax异步请求发送与解析json数据
- Javascript闭包——懂不懂由你,反正我是懂了
- jquery ajax POST 例子详解
- SEO基础知识
- 移动开发技术新趋向(一)
- 带时限的cookie操作
- IOS 堆和栈的在内存中管理方式