第一步其实是下软件,构造编译环境,可是好好好麻烦啊啊啊!!我就不讲了,呵呵。
一,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微软磁盘操作系统,是美国微软公司提供的磁盘操作系统