标签:ima style 关键字 动态操作 网站 ref 桌面 ext oid
一、JAVA特点:简单易学、安全性高、跨平台、多线程??
(一)简单易学:
1. C++/C#/JAVA都是类C语言。JAVA类似于C++
2. 优化了C/C++的指针、结构、内存管理(用户使用JAVA只需要分配,内存不需要释放内存)的缺点
3. JAVA拥有丰富的类库
4. JAVA是完全面相对象的语言(面向对象的特性:继承、重载、多态)
C是纯面向过程语言
C++是面向过程和面向对象混合语言
(二)安全性高:
1. JAVA是一个强类型语言,类型检查严格。安全第一位,功能第二位。
2. JAVA提供垃圾回收机制。在程序空闲时期,主动回收垃圾数据,避免C/C++中内存泄漏问题。
3. JAVA禁止非法内存访问,没有授权情况下不得访问内存,不必担心内存崩溃问题。(指针)
(三)跨平台:
1. 设计C语言的目的:①C语言是作为系统编程,不限制程序所执行的操作,具有健壮性,功能强大 ②执行速度快
2. 设计JAVA的目的:①跨平台 ②相比C语言功能性相对较弱,JAVA不能作为系统编程
3. 传统高级语言:高级语言程序 —编译(编译器)—> 特定机器的机器语言程序
4. 操作系统:计算机(程序)——> 操作系统(最基本操作:建立文件夹、屏幕显示、打印)<——用户
5. 用户—使用C语言 / JAVA / …写出 —> 高级语言程序(文本)—编译(编译器软件VS2013 / eclipse.exe)—> 可执行程序 <—由计算机的操作系统控制硬件在上面分配一个内存— 硬件
6. 机器语言:不同种类的计算机有不同的机器语言(计算机只能识别机器语言)
7. 传统计算机:eg:不同种类计算机中硬件为Win32系统、Linux系统、Mac系统…,必须为硬件系统分别单独设计程序,程序之间不能通用。为A系统设计的程序不能移植到B系统上。
8. JAVA虚拟机:JVM:Java Virtual Machine(Java虚拟机软件)
9. 为A硬件系统设计的程序只需要通过【B硬件系统计算机】上安装的【Java虚拟机软件——B硬件系统】就可以实现程序的移植
10. 在计算机A系统中:C语言源代码/源程序(.c)—C编译程序编译—> A系统下的可执行文件(.exe)—执行—> A操作系统
—执行—> JVM虚拟机【C系统下的JAVA字节码解释程序】——> C操作系统
11. JAVA是一种网络语言:JAVA源程序/源代码(.java)—java编译程序编译—> java字节码文件(.class)—执行—> JVM虚拟机【A系统下的JAVA字节码解释程序】——> A操作系统
—执行—> JVM虚拟机【B系统下的JAVA字节码解释程序】——> B操作系统
12. 【JAVA源代码程序、JAVA字节码文件】与【计算机、计算机硬件件系统】无关。
【JVM】在【不同操作系统的计算机】上是不同的,不同计算机安装有【专门为计算机操作系统开发的JVM】。【JVM】与【计算机、计算机硬件件系统】有关。
(四)多线程:
1. JAVA可以使得一个程序同时执行多个任务
二、JAVA的应用领域??
J2ME:java 2 micro edition (Java 2 微缩版)、JAVAMA:J2ME只拥有J2SE的核心类,但新添加了一些专有类如CLDC【嵌入式系统开发、手机软件、PDA】
J2SE:java 2 Standard edition (java 2 标准版)、JAVASE:【客户端,桌面应用软件】
J2EE:java 2 enterprise edition( Java 2 企业版)、JAVAEE:J2EE比J2SE扩充一点,再增加一些EJB等企业应用方面的特性【JSP(JavaServer Pages)、分布式的网络程序的开发、电子商务网站、ERP系统】
访问控制 |
private |
protected |
public |
||||||
类,方法和变量修饰符 |
abstract |
class |
extends |
final |
implements |
interface |
native |
new |
static |
strictfp |
synchronized |
transient |
volatile |
||||||
程序控制 |
break |
continue |
return |
do |
while |
if |
else |
for |
instanceof |
switch |
case |
default |
|||||||
错误处理 |
try |
catch |
throw |
throws |
|||||
包相关 |
import |
package |
|||||||
基本类型 |
boolean |
byte |
char |
double |
float |
int |
long |
short |
null |
true |
false |
||||||||
变量引用 |
super |
this |
void |
||||||
保留字 |
goto |
const |
关键字 | 含义 |
abstract | 表明类或者成员方法具有抽象属性 |
assert | 用来进行程序调试 |
boolean | 基本数据类型之一,布尔类型 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支 |
do | 用在do-while循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口 |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile |
表明两个或者多个变量必须同步地发生变化 |
while |
用在循环结构中 |
四、C语言程序和JAVA程序的例子??
一个三角形已知abc三条边的长度,可求得此三角形面积和体积
(一)C语言
/*
时间:2020年2月
编辑人:pinkowonote
功能:
目的:c语言和java
*/
# include <stdio.h>
# include <math.h>
int perimeter(int m, int n, int k)
{
return m + n + k;
}
double area(int m, int n, int k)
{
/*海伦公式:
p=(a+b+c)/2
S=sqrt[p(p-a)(p-b)(p-c)]
=sqrt[(1/16)(a+b+c)(a+b-c)(a+c-b)(b+c-a)]
=1/4sqrt[(a+b+c)(a+b-c)(a+c-b)(b+c-a)]*/
double p = 1.0 * (m + n + k) / 2;
return sqrt(p * (p - m) * (p - n) * (p - k));
}
int main(void)
{
int a = 0, b = 0, c = 0;
printf("请输入三角形三边abc的值,并以空格隔开:");
scanf_s("%d%d%d", &a, &b, &c);
printf("三角形的周长是%d, 面积是%lf\n", perimeter(a, b, c), area(a, b, c));
return 0;
}
/*
在VS_2013中输出结果是:
--------------------------------
请输入三角形三边abc的值,并以空格隔开:3 4 5
三角形的周长是12, 面积是6.000000
--------------------------------
总结:
*/
(二)JAVA:Eclipse配置【已安装好的??】jdk+tomcat
/*
时间:2020年2月
编辑人:pinkowonote
功能:
目的:c语言和java
*/
package demo;
class Triangle
{
/*三角形静态的属性*/
int a;
int b;
int c;
/*三角形动态的操作*/
/*perimeter()括号中不需要写形参,因为a+b+c本身就属于事物本身,事物内部可以相互访问。perimeter()、area()函数可以直接访问abc*/
int perimeter()
{
return a + b +c;
}
double area()
{
double p = 1.0 * (a + b + c) / 2;
/*使用java.lang.Math类的sqrt(double)方法。Math是在java.lang这个包中的所以可以直接在程序中用这个Math类*/
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
}
public class Demo
{
public static void main(String[] args)
{
/*int * p =(int *)malloc(sizeof(int));
A与int类似,都是一个【类】(int整型类、A类)
A * q = (A *)malloc(sizeof(A)); */
/*与C语言中Triangle * r = (Triangle *)malloc(sizeof(Triangle));相同*/
/*new相当于malloc,动态分配内存*/
Triangle s = new Triangle();
/*s的静态属性*/
s.a = 3;
s.b = 4;
s.c = 5;
/*System类里具有属性out,再里面套用了printf();方法*/
/*s的动态操作*/
/*在c语言中,double用lf输出,float用f输出*/
/*在JAVA中,double和float都用f输出*/
System.out.printf("%d %f\n", s.perimeter(), s.area());
}
}
/*
在VS_2013中输出结果是:
--------------------------------
12 6.000000
--------------------------------
总结:
*/
(三)C语言和JAVA比较 / 之间的区别
1. 面向过程:C语言认为一个事物struct只包含【静态的属性】
2. 面向对象:JAVA(和C++类似)认为一个事物class是由【静态的属性】和【动态的操作】构成的
3. JAVA中的函数 = 方法 / 一个事物可以执行的操作
4.
JAVA和C语言的不同 | |
C语言 | JAVA |
一个事物被构造成一个结构体 C语言在结构体中,只能设置静态变量 C语言在结构体里不允许有函数 struct Student { int id; char sex; float score; } |
一个事物被构造成一个类 JAVA在类中,允许有【静态变量】和【动态函数】 class Student { int id; char sex; float score;
void study() { } void sleep() { } } |
5. 在C语言中数据和数据(属性)的操作是相互分离的
int perimeter(int m, int n, int k)
{
return m + n + k;
}
double area(int m, int n, int k)
{
double p = 1.0 * (m + n + k) / 2;
return sqrt(p * (p - m) * (p - n) * (p - k));
}
int main(void)
{
int a = 0, b = 0, c = 0;
……
printf("三角形的周长是%d, 面积是%lf\n", perimeter(a, b, c), area(a, b, c));
return 0;
}
6. JAVA中这些数据都被归为一类(对象)中。在主函数直接调用此对象的操作【eg:perimeter()】是错误的,因为这一操作属于这个对象中,只有这个对象在才能调用【eg:s.perimeter()】
JAVA是更加像现实世界的,模拟现实世界更好、更突出
class Triangle
{
/*三角形静态的属性*/
int a;
int b;
int c;
/*三角形动态的操作*/
int perimeter()
{
……
}
double area()
{
……
}
}
public class Demo
{
public static void main(String[] args)
{
Triangle s = new Triangle();
/*s的静态属性*/
s.a = 3;
s.b = 4;
s.c = 5;
System.out.printf("%d %f\n", s.perimeter(), s.area());
}
}
(四)dos命令
JAVA源程序/源代码(.java)————java编译程序编译————> java字节码文件(.class)——————执行——————> JVM虚拟机【A系统下的JAVA字节码解释程序】——> A操作系统
javac【文件名.java】:进行编译 java 【类名(.class)】:执行
标签:ima style 关键字 动态操作 网站 ref 桌面 ext oid
原文地址:https://www.cnblogs.com/pinkowonote/p/12264215.html