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);
}
}
- Java学习笔记--CSS笔记
- Java学习笔记001
- Java 学习笔记
- java 学习笔记
- Java学习笔记
- java 学习笔记
- java学习笔记
- java学习笔记
- java学习笔记-1
- java虚拟机学习笔记
- java虚拟机学习笔记
- java虚拟机学习笔记
- Java学习笔记1
- Java学习笔记2
- java学习笔记(1)
- java学习笔记#2
- java学习笔记1
- java 学习笔记
- Tomcat第五讲
- 如何修改工程中的JRE system library
- 从零开始学C++之标准库类型(二):vector 类简介和例程
- Oracle常用经典SQL查询
- list 、set 、map 粗浅性能对比分析
- Java 学习笔记
- 关于使用READ TABLE语句的几点注意事项
- mysql 半同步复制(semi_sync_replication)搭建及使用
- Android <meta-data>
- Tokyo Tyrant
- ABAP中SY-INDEX和SY-TABIX的区别
- SSH与Java
- C/C++中宏使用总结
- Android开发中遇到的错误及解决方法(1)