码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA概述

时间:2020-02-07 16:29:18      阅读:58      评论:0      收藏:0      [点我收藏+]

标签: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:J2EEJ2SE扩充一点,再增加一些EJB等企业应用方面的特性【JSP(JavaServer Pages)、分布式的网络程序的开发、电子商务网站、ERP系统】

三、JAVA关键字??

访问控制

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)】:执行     

JAVA概述

标签:ima   style   关键字   动态操作   网站   ref   桌面   ext   oid   

原文地址:https://www.cnblogs.com/pinkowonote/p/12264215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!