博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java-基础语言知识
阅读量:257 次
发布时间:2019-03-01

本文共 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/

你可能感兴趣的文章