本文共 4726 字,大约阅读时间需要 15 分钟。
零.java中的编译和运行
1.编译
- 编译是将.java中的class提取转化成.class文件,然后才可以进行.class文件的运行,所以编译必不可少;
- 第一种编译是用绝对路径,直接打开cmd窗口后,输入javac 路径
- 第二种编译是用当前路径,点开目标所在文件夹后,在路径一栏输入cmd,打开的cmd就在当前路径,javac 文件名字.java
2.运行
- 运行是将.class文件进行运行
- 我已经设置好了classpath环境变量到java文件夹(其他文件夹也可以后续添加,这样更方便)
- 在java文件夹中的可以直接打开cmd,输入java 文件名(注意不加后缀)
- 没有在java文件夹中的就要打开文件所在目录,在路径一栏中输入cmd,在cmd中,java 文件名.java;
一.java中的注释:
**1.大体上面和c预言的注释差不多,但是在转换为class文档后注释清除(doc注释除外)**。**2.javadoc注释格式** /** * javadoc注释 * javadoc注释 * javadoc注释 */在使用javadoc注释后,会在jdk/bin/javadoc.exe工具下生成帮助文档,
二.HelloWord
//public表示公开的 //class表示定义一个类名//HelloWord表示一个类名public class HelloWord{ //表示定义一个公开的类,起名为HelloWord /* public表示公开的 static表示静态的 void表示空 main表示方法名是main {String[] args} 是一个main的方法的形式参数*/public static void main ( String[] args ) { // 表示定义一个公开的静态的主方法//这里是方法体//以下代码的作用是向控制台输出一段消息//java中的所有"字符串"要用英文双引号,如果要在里面加,就用中文的,不然要出错 System.out.println(" Hello Word ");}
}
三.public class 和 class 的区别
- 一个java源文件当中可以有多个class
- 如果只用class定义的话,里面可以有多个class的类,并且文件名可以不与类名相同;(类的名字不能相同,就象不能有相同名字的变量一样)
- 一个class会定义生成一个xxx.class文件
- 一个java源文件中定义公开类的话(public class),public class只能有一个,并且源文件和类名一致。(但是还是可以定义class类)
- 在运行class文件时,class文件中必须有主方法( public static void main(String [] xxx) )
四.java语言基础
1.java中的标志符
- 标识符是在源程序中程序员可以自己命名的单词
- 标识符可以标志的元素 —类名 —方法名 —接口名 —常量名 …
- 标识符的命名规则 —只能由“数字,字母,下划线_,美元符号$”组成 —不能以数字开头 —严格区分大小写 —关键字不能做标识符(void,public…)
- 标识符的命名习惯 —最好见名知意 public class UserService{ public vod login( Sring username ,String password){} } —遵守驼峰命名方式(两个单词在一起时首字母大写好区分) SystmeService UserService CustomerService —类名、接口名:首字母大写,后面每个单词首字母大写 —变量名、方法名:首字母小写,后面每个单词首字母大写 —变量名:全部大写 2.数据类型
- 默认值 —String :null —int :0 —double :0.0 —int[] : {0}
- 整数型:byte1、short2、int4[默认]、long8(char c=010:8进制形式0开头后面为数值,同理16进制以0x开头,但输出都是10进制)
- 浮点型:float4(单精度)、double8(双精度[默认]) 字符型:char2(由于汉字是两个字节,所以刚好可以存放一个汉字)
- 布尔型:boolen
- java看到整形会被默认为int类型
- long z= 2147481348 :z是long类型占8字节,但是2147481348倍当做int类型占4个字节,并且超出(刚好)int范围 long z=999999999999L :这样就对了
- 大容量不能直接转换为笑容量,但小容量可以转换为大容量 long x=15000L int y=(int)x :由于x是大容量,所以要先将x转换为int类型在给y符x的值
- 注意事项,若字面值没有超出byte的取值范围(128)的可以直接赋值 byte p=127 :是对的,这是byte的特殊情况,照常理来说直接127应该是int类型,int类型比byte类型容量大 byte p=(byte)128 :超出了byte的,可以进行强制转换赋值,但是有精度损失
- 注意事项:浮点数当中默认类型是double,如果一定要使用float类型,需要加上一个后缀F java中所有的浮点型字面值都没默认为double类型(整形默认为int) float = 5.1 :这样是错误的 float =(float) 5.1 :对 float =5.1 f :对 -如果是整数,默认为int类型,若使用long类型,需加上一个后缀L。推荐使用大写字母后缀
- 基本的8种数据类型除了boolean型都可以互相转换 -小容量向大容量的转换,称为自动类型转换 -容量大小排序 byte < short(char) < int < long < float < double char = 97 :97默认为int类型,但是被自动转换了;
- 在混合运算的时候,数据被先全部转换为最大的容量类型 —double b =10.0/3 :结果为3.333333,应为10.0位double类型,所以在运算时分母3也被转换为了double类型,结果也就为double —long g=10 int h=g/3 :这样是不对的,因为g是弄类型,那么结果算出来也就为long类型; int h=(int)g/3 ;把g转换为int —byte a = 3 :正确 byte a = (byte)(int)g/3 :错误,先把g转换为int,然后在转换为byte,但是分布3还是为int,所以结果为int 这里会编译报错是因为编译只看语法(不运算,所以不知道是否小于byte范围),这里照理来说10/3没有超出byte范围,但是编译检查的时候回报语法错误 byte a =(byte)(int)(g/3) :对 —short和byte运算,会首先转换为int在运算; short i = 10 ; byte j = 5 ; short k = i + j :错误 short k =15 :正确 3.转义字符 \ ()
- 它可以配合其他字母,使得获得新功能
- char a=’\n’:换行,并且\n还是一个字符
- char k=’’:编译错误,因为\能使后面哪一个’转义为普通的’,不再担任字符括起来的功能,所以少了一个‘
- 转义字符出现在特殊字符之前(相邻),会将特殊字符转换为普通字符
- char c=’\u4e2d’:可以编译通过,因为\u表示后面的数字是unicode的编码(可以打印汉字) 4.逻辑运算
- System.out.print(4 > 5); :打印出来的是false
- &(逻辑且) :两边为真才是真
- |(逻辑或) :一边为就是真
- !(逻辑非) :取反,!ture就是false,!flase就是true
- ^(逻辑异或) :两边的算子不一样就是真
- &&(短路且) :与上面相同
- ||(短路或) :与上面相同 -短路和逻辑不通的只有,短路有短路现象 *int x=10 ; int y=8 ; -System.out.print( x<y & ++x<y); 此时x=11; -System.out.print( x<y && ++x<y); 此时x=10;
- 短路就是倘若前面第一个就可以判断这一个逻辑运算的结果,就不执行第二个(效率高一些) 逻辑就是两个都要执行;
- 短路且就是第一个为flase就短路
- 短路或就是第一个为true就短路 5.运算符
- 拓展类运算符自带强制转化功能( += , -= , /= ,%= ,*=) byte x =10; x = x + 5 ;编译不通过(编译只检查语法int,不计算) x += 5 : 正确因为它相当于x =(byte)(x+5) ;
- ava中的‘+’ -数字 + 数字 --> 数字 (求和) -数字 + “字符串” --> “字符串” (字符串连接) -加号在没有()的影响下就是从左往右进行
伍.方法
1.数组
- java的数组定义为 -数据类型[] 数组名称 = new 数据类型 [长度] ; -数组里面的默认值为0; -int[] data= new int[]; -int[] data={1,2,3}; :注意以一个[]不能写东西,和c语言不一样 -char[] cc={‘a’,‘b’,‘c’};
- 获取数组的长度 -定义移动int b=data.length;
- 数据的类型可以是一个类 mathod[] a=new mathod[10]; —那么a数组里面存放的就是mathod类的地址 —method one = new method(); —method two = new method(); —method three = new method(); —a[0]=one; —a[1]=two; —a[2]=three; 或则:for(int i=0;i<3;i++){ a[i]=new method(); } 2.方法重置机制
- 在java中可以用相同名字的方法 —public static int a[int i, int j]{…} —public static double a[double i, double j]{…} —public static long a[long i, long j]{…} —在使用同名为a的方法时,那么会自动识别所传入数据的相同方法(于方法的返回值无关,只与括号类的有关) 3.封装
- java中的封装是一种强大的机制,类似于c语言的自定义函数库
- 在同一个文件夹中(我的是这样),可以访问其他的public class文件
- 比如我定义了一个类为u的文件,然后里面有一个名为p的多种答应方法,那么我在其他程序中直接u.p(类
型)直接打印
六.printf.print.println
1.printf: 跟c语言的差不多,前面有%d,%.3lf等等,可以输出保留小数 2.另外两个的区别就是有无换行,无法保留小数 七.ArryList
- 1.它是一个类,在java.util.ArryList当中**
- 2.定义: ArryList a=new ArryList(); <>里面代表的存储的数据类型*
- 3.使用
- 添加:a.add(one); a.add(two); a.add(three); System.out.println(a); 打印结果为:[one,tow,three];
转载地址:http://aosa.baihongyu.com/