java基础(一)

JDK的配置

JDK的组成是:jre+java核心类库+java工具包

Path设置技巧

JAVA_HOME环境变量 设置为\bin前面的路径,设置为Path =%JAVA_HOME%\bin,避免对系统环境的频繁修改造成错误,path只支持可执行文件


配置临时环境变量:

set path = XXXX

增加临时环境变量 set path=XXX;%path%

环境变量从头开始查找


配置类文件路径:

classpath 类文件路径

将java的类文件目录告诉JVM 未设置在当前路径

set classpath=c:\xxxxx;

加了分号虚拟机会在当前目录下查找类文件 .是指当前路径

阅读性加强 setclasspath=.;c:\xxxxx;

注意:当出现类文件找不到的错误时注意检查(1)类是否存在(2)classpath是否设置错误

           其中java的类名最好与java源文件名一致


java语言基础知识

关键字

 定义:在java中被赋予特殊含义的单词 

特点:都是小写的

标示符

标示符组成:26个大小写字母数字 _ $符号

标示符使用注意事项:(1)数字不可以开头(2)不可以使用关键字

            (3)名字尽量要有意义 java中严格区分大小写

标示符的作用:标识符可以做 类名 变量名方法名

下划线、美元符号的作用 :用于连接某些名称


注释

注释的作用:提高了代码的阅读性

java语言中有三种注释方式:

(1)单行注释  //XXXX

(2)多行注释 /*    XXXX    */    注意的是多行注释不能嵌套

(3)java特有的文档注释/** XXXX     */

注释不会被写入字节码文件

其中文档注释可以用javadoc 命令提取出来 

当要将文档注释生成的文档放在当前目录下时可以加上 -d . 命令


常量

常量表示不能改变的数值

常量分类:整数常量、小数常量、布尔常量、字符常量、字符串常量 、null常量(只有一个值null)

整数的进制表现形式:二进制  由0和1组成  0100

八进制  开头为0的数字

十进制

        十六进制 以0x开头由数字0-9 字母a-z组成  0xf  

各进制与二进制:(1)八进制占二进制三位

        (2)十六进制占二进制4位

常用的进制:二进制和十六进制

负数在内中的存在形式:负数在内存中是以补码的形式存在的

            负数二进制最高位是1 整数是0

补码的算法:负数的绝对值取反加1

例如:


 变量

变量的特点:(1)内存中的一个存储区域

(2)该区域有自己的名称和类型

(3)该区域的数据可以在同一个类型的范围内不断变化

作用:用来不断的存放同一类型的常量,并可以重复使用

变量的格式:

数据类型变量名 = 初始化值

变量就如同数学中的未知数

          当数据不确定时就定义变量

定义变量注意事项:

(1)变量不能重复定义

(2)局部变量必须初始化

(3)实例变量可以不初始化 虚拟机会为实例变量初始化

(4)运算两端必须都是相同类型的变量


 

Java的数据类型

Java整形默认是int 浮点默认是double

强制转换必须小心使用,会丢失精度

强转例子:

byte b = 4;
b = 3+7;
byte b1 = 3;
byte b2 = 4;
b = b1+b2;//err 精度损失

分析:byte b =4; 4在java中默认是int型编译器会先检查所赋的值在-128~127范围内,在的话自动强转为byte类型

b = b1+b2;//err 精度损失

 b1,b2 为变量范围不确定编译器不能确定值,所以编译报错

注意:右边无法确定则无法判断并赋值,编译无法通过

ASII码表 美国信息交换表

GB2312 国标表

GBK 国标扩展表

Unicode表 国际标准码表

例子2

int x1= Integer.MAX_VALUE;
int x2 = 2;
 int x = x1 + x2;//error  会产生精度丢失

运算符

算数运算符:+  -  *   /  %  =  ++  --   字符串相加的 + += -= *= /=

注意:(1)负数只参考被取余的数  5%-2 == 1

    (2)除号右边为0会抛出ArithmeticException(算数异常)

例子:

int a = 3,b;

b = a++;

内存中的过程:a变量先在内存中划一块临时区域保存a变量的值,再自增运算,最后将临时区域的值赋值给b变量

面试小例子1

int i =3;

i =i ++;//i的值为3

过程:i=i+1  i = i在临时区域的值

面试小例子2

short s = 3;

         s+=4;//加等会在底层自动转换类型 与short s =3 类似

        s = s+4;//error损失精度


比较运算符:>  = <  >=  <=  !=  ==  instanceof

instanceof作用:XX instanceof XX 判断左边的对象是否是右边的类或其子类

注意:比较运算符运算完的结果必须是true或者是false


逻辑运算符:&  |   &&  || 

逻辑运算符:用于连接两个boolean类型的表达式

其中&&称为短路与 ||称为短路或

& 与 符号运算特点:

true & true  true

true & false  false

false & false  false

与运算两边只要有一边为false结果为false

只有两边都为true结果为true

 | 或运算符特点:

true | true true

true | false  true

false | false  false

或运算两边只要有一边为true结果为true

只有两边都为false结果为false

^ 异或运算符 和或有点不一样

true | true false

true | false  true

false | false  false

异或运算规律:相同为false 不同为true

&&与&的区别:

    & 当左边为false是右边运算,&&当左边为false时右边不运算,因此成为短路与

||与|的区别:

||  短路或当左边为true时右边不运算,|则无论左边为false或者true右边都运算

 

位运算符:& | ^ ~  >>  >>>   <<

& 运算  可以取二进制数的某一段

^ 异或符号: 一个数异或同一个数两次,结果还是这个数   6^3^3 = 6;

~ 取反  一个正数的反码是这个正数的负数减一 6的反码是-7

移位运算符号

>> 右移 3>>2 右移2位符号位补最高位

右移n位其实就是该数字除以2^n次方 

<< 左移 3<<2 左移两位 最低位补零

左移n位其实就是该数字乘以2^n次方

>>> 无符号位右移  3>>>2 无符号位右移2位

例子:

对两个值进行互换高效方法(不用第三方变量)

int a = 5,b =3;
a = a^b;
b = a^b;
a = a^b;
分析: 一个数异或同一个数两次,结果还是这个数 

三元运算符  (表达式)?表达式1 : 表达式2

如果表达式为true则运行表达式1,为false则运行表达式2

 java流程控制语句

流程控制分类:顺序结构 判断结构 选择结构 循环结构

判断结构:

(1)if(){........}

(2)if(){....}else{......}

(3)if(){;;;;;}

     else if(){......}

    ...........

    else{.........}

If语句时候要注意写{ }

简化格式简化代码书写但是造成代码可读性变差

简写格式什么时候用?

当if else运算后有具体结果时可以使用三目运算符替代

局部代码块可以节省内存空间 可以定义局部变量的生命周期

代码复用性 当多个条件对应一个结果时,可以将条件合并


选择结构:

switch表达式中的数据类型 byte short char int String enum

switch(表达式){

case 1:表达式1;break;

case 2:表达式2;break;

 .........

}

switch多个对应关系


if和switch的应用

if:1.对具体的值进行判断

   2.对区间判断

   3.对运算结果是boolean类型的表达式进行判断

switch:1.对具体的值进行判断

2.值的个数通常是固定的

注意:对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载入内存,效率相对高一些

 

循环结构的代表性结构有三个

(1)while() {......}

(2) do{.....} while()

(3) for(XX;XX;XX){.....}

do{}while() 特点无论条件如何循环体都要执行

 

for(表达式1;表达式2;表达式3){}

表达式2必须为boolean表达式

表达式1和3可以为任意表达式

for和while的区别

1.      for和while可以互换

2.      格式上的不同,在使用上有点小区别

控制循环的变量for只在for范围内有效

无限循环最简单的形式

(1)while(true){}

(2)for(;;) for第二个表达式默认为true

什么时候使用循环结构

当对某些代码执行多次时,使用循环结构完成

什么时候使用if和while

(1)当对一个条件进行一次判断是,可以使用if语句

(2)当对一个条件进行多次判断是可以使用while语句

大圈套小圈思想:有一种重复的情况,每种情况对应其他的重复情况多次

其他的流程语句:

break:跳出

break作用范围:要么是switch语句,要么是循环语句

记住:当break语句单独存在时,下面不要定义其他语句,因为执行不到会编译错误

break跳出最近的循环

continue :继续

作用范围:循环结构

continue结束本次循环,继续下次循环


转义字符 \n 回车 \t 制表符 \b 退格  \r按下回车

Window系统中回车其实是有两个符号组成的 \r\n

Linux中回车符是 \n


练习:九九乘法表

for(int i = 1;i<10;i++){
			//控制列数
	for(int j =1;j<i+1;j++){
				
	System.out.print(i+"*"+j+"="+j*i+"\t");
				
	}
          //控制每行输完换行
	System.out.println();	 }


   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值