Java 学习笔记

来源:互联网 发布:vmware 教程 网络 编辑:程序博客网 时间:2024/06/05 06:32

1.JDK的安装配置

以下为置JAVA_HOME,CLASSPATH,PATH的目的:
1,设置JAVA_HOME:
一、为了方便引用,比如,你JDK安装在C:\Program Files\Java\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后你要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串;
二、归一原则, 当你JDK路径被迫改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对路径引用JDK目录的文档, 要是万一你没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃!
三、第三方软件会引用约定好的JAVA_HOME变量, 不然, 你将不能正常使用该软件, 以后用JAVA久了就会知道, 要是某个软件不能正常使用, 不妨想想是不是这个问题.

2,设置CLASSPATH:
这是一个很有趣,当然也比较折磨初学者的问题, 这个变量设置的目的是为了程序能找到相应的".class"文件, 不妨举个例子: 你编译一个JAVA程序---A.java, 会得到一个A.class的类文件,你在当前目录下执行java A, 将会得到相应的结果(前提是你已经设置CLASSPATH为"."). 现在, 你把A.class移到别的目录下(例如:"e:\"), 执行java A, 将会有NoClassDefFindError的异常,原因就是找不到.class文件, 现在你把CLASSPATH增加为:".;e:\"再运行java A, 看看会有什么结果~~:)~~~, 一切正常, java命令通过CLASSPATH找到了.class文件!

3,设置PATH:
道理很简单, 你想在任何时候都使用%JAVA_HOME%\bin\java 等来执行java命令吗, 当然不会, 于是, 你可以选择把 %JAVA_HOME%\bin添加到PATH路径下, 这样, 我们在任何路径下就可以仅用java来执行命令了.(当你在命令提示符窗口输入你个代码时,操作系统会在当前目录和PATH变量目录里查找相应的应用程序, 并且执行.2.classapth的作用


2.Java和javac的使用

 Javac Hello.java 编译java文件 生成.class             java Hello    执行Hello.class

3.值传递和引用传递的区别

    值传递:实参将值传递给形参后,形参值的改变不影响实参的。

    引用传递:传递的是实参的引用 即实参的地址 形参改变实参也随其改变。

 

   string s1="123";

   string s2=s1;

   string s3=new string(“456”);

 

   s2=s2+s3;

   s1= ;                       123456

 

 

4.队列和数组的区别

     数组与队列的区别主要是效率  类型识别    primitive type

     数组效率最高 但是长度固定。

     队列长度可变但是牺牲了效率。

     队列屏蔽所有对象的类型为object  抛弃了类型信息 编译时不检查类型但运行时会报错。

     ArrayList可以存任何Object,如String,Employee等,但不支持基本数据类型,除非使用wrapper

 

5.变量常量

      变量    分为 成员变量和局部变量,成员变量分为静态变量和实例变量。

         常量  public static final int  a=8;

      存放位置 地址: http://blog.csdn.net/itlwc/article/details/8620757

6.java基本数据类型

       java基本数据类型有:

      类型                    字节              默认值                范围

       long                                8                   0L            -2^63~2^63-1

       int                          4                    0             -2^31~2^31-1

           short                      2                    0              -2^15~2^15-1

       byte                       1                    0            -2^7~2^7-1

       char                       1               \u0000(空) 0~2^8-1

       boolean                 1                 false          false       true

       float                       4                 0.0f          -3.4E38(-3.4×1038) ~ 3.4E38(3.4×1038)

           double                    8                0.0d          -1.7E308(-1.7×10308)~ 1.7E308(1.7×10308)

                java中整型数据的默认值为int 所以 如果定义 long num = 325611245333;编译的时候会出错;正确的定义方法为

     long num = 325611245333L;

   

    取数据类型的最大值方法:  long long_max=java.lang.Long.MAX_VALUE;(/MIN_VALUE)。(java.lang 可以省略)

  

     数据类型的溢出: 如 

      int num=java.lang.Integer.MAX_VALUE;  

      System.out.println("num+1="+(num+1)); 

      System.out.println("num+2="+(num+2));               

      输出结果: num=2147483647; num+1=-2147483648;num+2=-2147483647;

      可以在运算中 将int型数据强制转化为long型数据如:System.out.println("num+1="+(num+1L));  或

        System.out.println("num+2="+((long)num+2)); 

 

   字符类型用‘’括起来  。定义:char ch1 = 97 ; char ch2 = 'a' ;       用\使用转义字符,如 \f换页  \\反斜线  \b倒退一格 \'单引号\r归位  \"双引号  \t跳格  \n换行

 

float 和double 型 :定义的时候 如果数值后面不加f或D\d,默认为double型   如float num=2.33E55;此时是错误的 超出了float的范围。

 

java中的boolean的值只有两个 true or false 。而C++中 bool的使用和java中一样,都是一位字节 值只有两个标识1或 0。而 C++ 中BOOL的使用则不是BOOL标识 0或非0,而且是int型 是四位字节。有三个值 true false 第三个值是初始化为定义的时候 其值是个 负的多少多少···

7.数据类型的转换

      java的类型转换可分为自动类型转换和强制类型转换。

自动类型转换(隐性转化)是在进行运算符操作时 满足前后类型相互兼容 并且转换后的类型比原来的类型要大 此时就是进行了自动类型转换    举几个例子:

    int a=99;

    double b=9.1;

   a>b?(System.out.println(a)):(System.out.println(b));   运行结果应该是 99.0。

   int a = 156 ;
   float b = 24.1f ;

  System.out.println("a / b = "+(a/b));          运行结果为 6.5。

 

强制类型转换(显性转化) :(欲转换的数据类型)变量名;                                                                                

  系统不会自动执行从大的类型转化到小类型的转化。此时会丢失精度  需要手动操作。

 8.Java获取网络时间

 import java.util.*;
import java.text.DateFormat;
import java.net.URL;
import java.net.URLConnection;
public class C{
public static void main(String[] args) throws Exception {
//       URL url=new URL("
http://www.bjtime.cn");
        URL url=new URL("
http://www.baidu.com");
        URLConnection uc=url.openConnection();
        uc.connect();
        long ld=uc.getDate();
        Date date=new Date(ld);
        System.out.println(date.getHours()+"時"+date.getMinutes()+"分"+date.getSeconds()+"秒");
        System.out.println(date);

 }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击