为什么要配置环境变量,随时让程序有运行的环境,例如执行javac.exe,则需要在cmd中打出这个exe的完整路径,那么不打出完整路径,执行这个exe就需要去path里找路径,
把JDK的bin目录路径放在path下即可。调好了,重开cmd,输入java version,就可以看jdk的版本信息。
而一般的开发中,将不含bin的上层目录放进JAVA-HOME中,
然后在path中 %JAVA-HOME%(两个百分号动态的引用)bin,如此组合。
1.不用开发工具执行helloworld
在新建的项目文件夹中自己建一个helloworld.java,然后去cmd里,先通过javac.exe编译,再用java.exe,运行。执行命令为 路径 +javac+名字.java,生成的字节码class文件名,跟。java里写的class名一样。
刚开始没写main方法。
2.windows下路径不区分大小写的
3.多行注释,,,,,不可以被嵌套使用
文档注释java特有
其注释内容可以被JDK的工具javadoc解析,生成一套以网页文件形式体现的程序说明文档。
4.API (application programming interface)应用程序接口,即java中的类库。API文档可以直接在线看api文档。
5.public 只能加在文件名的那个类前面,println,输出完了就换行。凡是自己可以起名字的地方都叫标识符。标识符的位置不能用关键字,不能数字开头和有空格,严格区分大小写长度不限。
6.所有类型的数据,第一个bit放的是符号,后面的才是数
7.float单精度,精确到7位有效数字,double精确到float的两倍。
8.char 两个字节,一个字符,不同于C语言,C语言中是一个字节。char a='n',然后输出a,就会换行,t制表符,输出会有一个空格。char a=‘u0043',输出unicode编码上面的0043代表的符号。
9.解决乱码,Window -> Preferences -> General -> Workspace -> Text file encoding,选择Other选项的UTF-8
10.java中低类型和高类型计算的结果为高类型。低类型的数据比如 float f=7;输出f是7.0
高类型的值赋给低类型的变量要强制类型转换
byte、char、short--》int--》long--》float--》double
如果byte b=12;
byte b1=b+1;
则会报错,因为这个时候b1成int类型的了。
前面3个之间的运算,结果都是int类型的,只能拿int型接受。
高到低,就需要强制类型转换,例如我就把一个double变量的d=12.3给int型的i,
int i=(int)d;
11.定义long型的时候还是要在数字后面加L,即使数字小的时候不会报错,一变大就报错。
比如long L1=12323;可以是因为默认12323这个数据为int类型,long比int大。可以把低类型的数据赋值给高类型的数据。
定义float类型的时候必须加f,float f1=12.3;它会默认后面的类型为double,编译错误。
但也可以改成 float f1=(float)12.3;
12.string 类型可以和8中数据类型运算,但只能是连接运算
输出:学号:1001,这就是连接运算。都连成个字符串。在输出里可以连接。
13.进制,2进制是0b或者0B开头,0开头是8进制,0x开头是16进制。
分析:首先0b开头,num1的值为6,因为0b出现了,默认2进制,然后把2进制110代表的10进制数赋给num1。
而num3如果=0128,前面出现0了,必须是8进制的了,尾部不能出现8这个数字。
正数3码合一。
负数的反码是在原码的符号位不变,其余按位取反。补码就是在符号位不变,在反码的基础上从末尾加1。计算机底层存数据按补码的方式。
14.逻辑运算符,&和&&的结果都是相同的,但&&是短路与,左面出现false右边直接不计算了。短路 | | 也是如此。 逻辑异或a^b,相同为true不同为false。
15.位运算符3<<2,3的二进制左移两位
&与运算,6&3=2; 双1才1,否则为0
|或运算,6|3=7; 有1就1,同0就0
异或运算,6^3=5,相同是1不同是0
取反运算 ~6=-7,取反是对存储着的补码进行取反,就连最高的符号位也取反了。
16.运算符的顺序,想让谁早运算,加小括号即可(),赋值运算符从右到左集合。
导包,import java.util.scanner ;
17.如何从键盘获取不同类型的变量,需要使用到scanner类
也可以用sring类型的获取。
Sring S=scan.next();除了String类,其他的类型都要写在next()前。
String gender scan.next(); char genderChar =gender.charAt(3);这句话就是String 类型里得到第4位单个字符的方法,因为索引从0开始。
18.switch中,没有遇到break就依次往下执行。switch中的表达式,只能是如下的6种数据类型,
byte,short,char,int,enum,String。布尔类型的肯定不行。case后面跟的只能是一个常量,比如switch(a/10),可以。但case里不能是判断表达式或者变量。
default 选项是没有匹配的最后才走这一项。位置是灵活的
先匹配,匹配完了发现没有匹配的,然后从default依次往下执行,default后面没有break。
19.break中断指定标签的循环。
用lable1:加在for循环的前面,然后break lable1;即可结束指定循环。
continue lable1,跳到指定循环的下一层。
20.项目实战,选择javaEE的透视图,java的只能写一些基础。
console和server消失的点掉的,都可以在这里面找到。
包名都要小写。复制粘贴 java文件的时候,乱码就调整成utf-8。如果粘贴的是别的包的,就要改包名。
换了workspace了,当前的配置都要归0;做出的配置都在.metedata这个文件下。建议直接把这个metedata拷贝过来。
21.数组Array,数组得元素可以是数据类型,也可以是引用数据类型。声明数组
int 【】+名字,这是定义。
赋值:名字=new int【】{1001,1002}。//静态初始化,一开始就把数组里得东西安排好了。数组得长度自己就确定了。
String name=new String【5】;//动态初始化,慢慢给数组里得元素赋值。
String name=new String【5】{1} 这种就是大大得错误,动静结合了属于是。
name【1】=“我”,这样赋值。
name.length直接看数组得长度。
21.1数组元素是整数,没赋值得时候是0;
浮点数,没赋值得时候是0.0;
数组元素是char,是0或’u0000',非‘0’。
boolean型,默认是false,
String等引用类型是null。
String类型放在常量池。
new出来的结构:对象、数组。
局部变量放在栈。
比如这一句话,int arr =new int【】{1,2,3};
先把arr放进stack,里,然后让arr=数组首地址,找到堆空间的数组,这俩联系起来。
二维数组,一个数组里面装的是另一个数组的首地址。数组的下标还是从0开始。
int【】【】 arr=new int【】【】{{123},{23},{3}};数组元素又是一个数组。
String【】【】 arr2=new String【3】【2】;
String【】【】 arr2=new String【3】【0】;正确的。
除了正确的都是错误的。
String【】【】 arr2=new String【0】【4】;错误的。
如何获得2维数组的长度?
第一句,可以看出元素个数。第二句,看第0个元素长度。数组的遍历。
22.Arrays工具类的使用
23.数组种的异常:(1)角标异常 ArrayIndexOutOfBoundExcetion
就是访问越界了。
(2)空指针异常。NULLPointException
我的理解是,指针已经是空的了,比如arry=null,还要访问它指的数组元素,比如arry【1】,就会出现这种异常。
int【】【】 arr=new int【4】【】;
这个时候,外层初始化值,是null,所以调用arry【3】【2】,就会出现这种异常。
这种情况也会。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)