java基础1、2

    技术2022-05-19  23

          虽然以前也学过java,但这看完张老师讲的java基础前两部分后,仍从中发现了不少漏洞和掌握不全的地方,现整理如下:

         

            1Java虚拟机Java字节码解释程序。只要操作系统上安装了相应的Java字节码解释程序,Java字节码文件就可以正确运行。即“一次编译,到处运行”。

            2、通常说的Java有三个方面的内涵:是一种编程工具,是一套开发工具,是一个运行环境

            3、什么是JDK:包括开发工具,Javac及基础核心类和运行环境。

            4j2sdk文件夹下bin中的Javac.exe是用于将Java源文件编译成Java字节码文件的编译工具。Java.exe用于将Java字节码文件解释执行的解释程序。(以上在windows系统下)。

            5、在windows系统下查看环境变量的两种方法:一种是在命令行中键入set命令,另一种是常用的通过右击“我的电脑”来然后点“高级”来查看。

            6、设置环境变量两种方法:a、在命令行中键入set空一格后,以:变量名=环境变量值的形式进行设置,但我们在命令行窗口中设置的环境变量,只对该命令行起作用。b、在环境变量窗口中进行设置,对以后的所有程序及命令行窗口都起作用,不会影响之前启动的程序及命令行窗口。另外,在用户环境变量中的设置,需在注销重新启动后才有效。

           7path环境变量的作用:当我们要执行某个命令时,操作系统会首先在当前目录下进行查找,若没有找到,操作系统会沿着path环境变量所指定的目录依次进行查找该命令文件,并以最先找到的为准。

    当执行Java时常遇到的两个问题:1Java不是可执行的程序2、在执行某个程序时提醒我们找不到某个文件第一个问题的原因:在当前目录及path环境变量所指定的目录下均找不到Java.exe这个可以执行的文件。第二个问题的原因:因为操作系统会沿着path环境变量所指定的目录依次进行查找该命令文件,并以最先找到的为准。当最先找到的Java命令文件(Java.exe)是有问题的时候,便出现了上面的第二个问题。

     

           8、在命令行中键入:Java –verbose 来查看使用的那个jdk

     

           9、与path环境变量的作用类似,classpath环境变量指出Java虚拟机查找class文件的路径。若我们设置了classpath环境变量,Java虚拟机便不再当前目录下查找class文件。但设置的classpath环境变量值后加上“;.”后便便可以在当前目录下查找class文件了,其中的“.”指代当前目录。此外设置的classpath环境变量值中不应含有空格及中文自符。

     

       10、反编译程序:jad.exe,它是在命令行中工作的,首先达到jad程序所在的目录,然后键入:

    jad –s java来设置输出文件为.java格式的。在其后,输入所要反编译的class文件的路径点回车,便可在jad程序所在目录下生成相应的Java文件。也可使用界面化的FrontEnd程序,进行反编译,它是依托于jad程序的。

         

          11、一些常用的转义字符:

      “/r”:代表接受键盘输入,相当于按下了回车键

      “/n”:表示换行

      “/t”:为制表符

      “/b”:为退格键,相当于BackSpace

      “/’”:为单引号

      “/””:为双引号

      “//”:是一个斜杠“/

           12char类型占两个字节,数值为0-2^16-1

           13表达式的数据类型自动提生

       若一个操作数是int型,所有的byte型、short型和char的值将提升到int型;

       若一个操作数是long型,计算结果就是long型;

       若一个操作数是float型,计算结果就是float型;

       若一个操作数是double型,计算结果就是double型;

     

           14、一个表达式中,若有字符串用加号(+)与其它类型的数据相加,结果就是该字符串与其他类型的数据相连,生成新的字符串。

    例如:System.out.print(‘a’+1);打印结果为98,而System.out.print(“”+‘a’+1);打印结果为a1.

           15java不允许变量的嵌套定义,变量有自己的生命周期及作用域。

    public classTestScope

    {

         public static void main(String args[])

    {

            int x=12;

            {

                int q=96; //xq都可用

                int x=3;   //错误的定义,java中不允许有这种嵌套定义

                ……

            }

            q=x;        //错误的行,只有x可用,q超出了作用的范围。

         }

    }

           16、在使用浮点数时,因为浮点数有精度,不要用等号去确定某浮点数。一般要用大小号来判断。

           17、使用new产生的数组和对象放在堆内存中,堆中有垃圾回收器,而相应的引用变量则放在栈中,引用变量不再被使用后会被释放,堆中的数组和对象再无引用变量指向时会变为垃圾,但此时仍占据着内存,然后在某一时刻被垃圾回收器回收释放。

           18、声明(非定义)数组时不能指出数组的长度,否则会在编译时出差。

           19java中并没有真正的多维数组,只有数组的数组,即数组的每一元素也都指向一个数组,java中的多维数组不一定是规则的矩阵形式。例如可以这样定义:

                                              int[][] xx=new int[3][];

                                              xx[0]=new int[2];

                                              xx[1]=new int[3];

                                              int[2]=new int[1];

    若要定义的二维数组是规则的矩形,则可在一句中定义:int[][] xx=new int[3][2];

           20、常用的用于操作数组的两个函数:(Arrays类中)

    public static void sort(byte[] a):将数组降序排序。

    public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):用于数组的拷贝。第一个参数指原数组;第二个参数指原数组中要拷贝的起始位;第三个参数指目标数组;第四个参数指拷贝到目标数组的起始位;最后一个参数指拷贝长度。

     

     

     

      

     

     

     

     

     

     


    最新回复(0)