从C++到Java(一)

本文介绍了Java语言的主要特点,如简单性、面向对象、跨平台性等,并详细讲解了一个简单的Java应用程序实例,包括主类定义、源文件命名规则、编译执行流程等内容。此外,还介绍了Java中的基本数据类型、数组的声明与初始化方法、枚举类型的使用。
摘要由CSDN通过智能技术生成

第一步其实是下软件,构造编译环境,可是好好好麻烦啊啊啊!!我就不讲了,呵呵。


一,Java的特征

1.简单。2.面向对象。

3.与平台(操作系统(OS)和处理器(CPU))无关:

编译器编译C语言和C++的时候,针对不同平台会形成不同可执行文件,因此针对平台A编译的就不能对B用。

Java在平台之上还提供一个Java运行环境。也就是,编译器会把源代码编译成针对JAVA虚拟机(或是说环境构成)的中间代码(字节码),再由虚拟机翻译成所在平台的机器码,因此平台虽然不一样,但是我们是先编译成字节码,不影响的。

4.多线程:不同任务,快速切换,造成同时执行错觉。C++没有内置多线程机制,因此要靠操作系统多线程功能来进行多线程程序设计。

5.安全。6.动态(和库的升级有关)7.java的基本组成就是类

二,一个简单的java 应用程序

1.应用程序的主类:java的源程序必须有一个类含有--public static void main(String args[])方法,称这个类是主类。args[]是main方法的一个参数,是一个字符串类型的数组(注意string第一个字母大写)

2.源文件中只能有一个类是public类,并且源文件名字必须和这个public类名字完全相同,扩展名是.java。比如创建一个public类hello,源文件保存是名字要是“hello.java”其中双引号是防止系统自动加上.txt扩展名。

3.编译,用MS-DOS命令窗口,使用编译命令javac(我上手就用Android studio 所以没用这个编译方法)。

4.总体过程,命名保存源文件,编译,执行,后两步要用命令行实现。此外还有联合编译,编译目录所有文件,都无必要要讲,知道就行,用到再查。


三,基本类型,数组,枚举类型

逻辑类型:boolean (1)

整数类型:byte(1),short(2),int(4),long(8)

字符类型:char(2)

浮点类型:float(4),double(8)


输入基本型数据

第一步:类前像包括一个头文件一样:import java.util.Scanner;

第二步:Scanner是一个系统的类,用他创建一个类,Scanner read= new Scanner(System.in);

第三步:read的调用方式有,read.nextDouble(),read.nextShort(),read.nextLine()(输入字符串)

第四步:令变量x,double x=read.nextDouble();


输出基本型数据

format 1:System.out.println(“every girl loves me”+1314);//println表示会自动换行,+表示数字或表达式或变量和字符串连接

format 2:System.out.print(“every girl” +

“loves me”+1314);//此处字符串太长,用+号分开换行

format 3: System.out.printf("%d",1);//注意printf和print,print只能输出字符串,不能带有双引号中的%d


数组

1.声明

声明真奇葩,竟然不允许在声明数组的方括号内指定元素个数,也就是说 int a[3];错误

format 1:

float boy[];

boy=new float[4];

boy[0]=1;

format 2:

float boy[]=new float[4];

format 3:

int girl[][]=new int[3][4];

format 4:

int a[][]=new int[2][];

a[0]=new int[6];

a[1]=new int[12];//可以不一样的

format 5:

int size=2;

int a[][]=new int[3][size];

2.length的使用 如上format 5   a.length表示数组a的行数,a.length=3

3.初始化

format 1:int a[]={1,2,3};

format 2:int a[][]={"1,2","1","1,2,3"};

4.引用 

虽然是错误的,但是我在这里借用一下java没有的指针概念。

两个数组a=b;实际上是把b的指针给a的指针,a就指向了b。这就是java的数组引用,把b的给a,可以用c的指针理解,但是java是没有指针的

char a[]={'a','b'};    println(a)是输出a的元素,如果想输出引用,println(“”+a)就行了

5.输出

注意上面是输出字符,那么输出数的时候要这样

System.out.println(Arrays.toString(b));

6.复制(不像引用一样直接共享内存空间)

method 1:   arraycopy        System.arraycopy(a,0,b,1,2);   把a[0],a[1]复制给b[1],b[2]//2为copy的长度,0,1为两个数组的起始位置

method 2:   copyOf       int[]a={1,2};//注意[]放前面也可以的int []b=Arrays.copyOf(a,3);  //b[0]=1,b[1]=2,b[2]=0. 把从a[0]后三个元素复制,返回数组b,超出默认0

method 3:   copyOfRange    int[]a={1,2,3,4,5,6};int[]b=Arrays.copyOfRange(a,1,3);   //b=[0]=2,b[1]=3,b[2]=4 很明显,把a[1]到a[3]给b

7.排序和二分法查找

int a[]={1,6,9,2,3,4,8};

Arrays.sort(a);//1,2,3,4,6,8,9//会改变顺序的,下面那句话还是假装他还是乱序的

Arrays.sort(a,1,3);//1,2,6,9,3,4,8  只会改变1到3

int index=Arrays.binarySearch(a,9);

index=2;//如果在数组中返回索引

int index=Arrays.binarySearch(a,-4);

index=一个负数;//如果不在数组中返回一个负数,我的编译器这个负数是-3,你的呢?你的呢?让我知道有个人在看我写的好不好!好不好啊!啊啊啊啊!!

枚举

enum weekday{  monday,tuesday};

weekday x=weekday.monday;//初始化

System.out.printf(x);//输出monday而不是0


一些名词:

JDK  Java 语言的软件开发工具包   

DOS命令,DOS操作系统的命令,是一种面向磁盘的操作命令:进入目录用“cd 目录名”    退出“cd..”

MS-DOS微软磁盘操作系统,是美国微软公司提供的磁盘操作系统


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值