Java学习日记

Java学习日记

此博客目的是为督促自己努力学习,有些内容摘抄自他人博客(还望见谅),如有错误地方欢迎大家指正。
DAY 1.19.1.14 MONDAY
1.JRE&JDK
JRE是Java运行环境,全拼是(Java Runtime Environment),JRE包括Java虚拟机和运行Java程序所需要的核心库。想要运行一个java程序,在计算机上安装JRE就可以了。
JDK是Java开发工具包,全拼是(Java Development Kit),JDK是提供给Java开发人员使用的。其中包括了开发Java程序的所用工具,还包括JRE。
2.Java的关键字和标识符
Java关键字是被Java语言赋予特殊含义的单词。
标识符就是在程序中自定义的名称,这些名称由字母、数字和符号组成。标识符需要符合两个规则: 1.数字不可以在开头 2.不可以使用关键字
在起名字时,为了提高代码的可阅读性,名字要尽量有意义。
3.代码注释
//注释一行
/* 注释多行
*/
4.变量和常量
常量就是不能改变的数值。在Java中常量包括整数常量、小数常量、布尔型常量、字符串常量、null常量。
变量:就是将不确定的数据进行存储,也就是在内存中开辟一个空间存储数据。
变量的定义:
数据类型 变量名 = 初始化值; eg. int i = 0;
什么时候定义变量? 当数据不确定,需要对数据进行存储的时候就定义一个变量用来完成存储。
在Java中数据类型包括:基本数据类型(byte、short、int、long、float、double、char、boolean)和引用数据类型(class、interface、)

int x=4;
byte b =2 //-128~127
short s = 30000; //3W+
long l = 4l;
float f = 2.3f;
double d = 24.46;
char ch = '4';
boolean bo = true;

5.数据类型转换
1)默认转换

package lianxi;

public class qzzh {
    public static void main(String[] args) {
    	byte b=4;
    	byte e=5;
    	int a=1;
    	int c=2;
    	b+=5;
    	System.out.println(b);//见后面运算符
    	System.out.println(a+b);//结果输出int
    	System.out.println(e+b);//结果输出int
    	 	
    }
}

byte short char ->int->long->double
byte short char 运算时转换为int ,运算中有long类型则结果是long类型,有double类型,结果是double类型。
byte short char 相互之间不转换,它们运算时先转换为int类型。

2)强制转换

byte f=(byte)(b+e);
System.out.println(f);

6.拼接

public class pinjie {
	public static void main(String[] args) {
		String a="LiuMeng";
		int b=23;
		System.out.println("hello, "+a+" you age is "+b+".");
	}

注意用+连接
7.运算符

public class yunsuan {
	public static void main(String []args) {
		int x=3;
		int y;
		x++;//结果等于++x
		y=x++;
		System.out.println(y);//先执行赋值运算,在进行++运算y=4
		y=++x;
		System.out.println(y);//先执行++运算,后执行赋值运算y=6
	}
	
class Operator
{
	public static void main(String[] args){
	  
	 // byte b = 1;
	 // b = b+1; // 报错 可能损失精度
	           // 因为byte b 在运算是转为了int
			   // 现在要用byte类型的b接收,所以会报错
      //System.out.println(b);
	  byte b = 1;
	  b += 1;
      System.out.println(b); //2
	  // 可见 b += 1;并不等价于 b=b+1
	  b+=130;
      System.out.println(b);//-124(byte型,8位,表示-128~127,最高位代表正负,最高位为1时,代表的负数是取反加一加负号。见收藏,原反补) 
	  //由此可见 b+=1 等价于 b=(byte)b+1;默认做了强制转换 
	}
}

比较运算符:== != > >= < <=,返回值为boolean值。
逻辑运算符,用于连接布尔型表达式或值,即两边的表达式必须都返回布尔值
& | ^ ! && ||
& and(与) | or(或) ^ xor(异或) ! not(非) && and(短路) || or(短路)
注意:^ xor(异或) 相同则为false 不同则为true
false ^ false = false
false ^ true = true
true ^ false = true
true ^ true = false
&& 与 & 的区别 || 与 | 的区别
& | 会把左右两边的表达式都运算完
而 && 当左边表达式为真时,才会运算右边,|| 当左边表达式为假时,才会运算右边
& 与(都为1则为1) | 或(有1则1) ~ 取反(1变0,0变1) ^ 异或(相同则为0,不同则为1)
根据前面学习的原码,反码,补码的知识,很容易得出运算结果。
^ 异或的特点:一个数据对同一个(另外一个)数据异或两次,其本身不变。
位异或运算的小应用(两个数互相交换其值):

class Operator
{
	public static void main(String[] args){
	  // 一个数据对另一个数据异或两次,其本身不变的小应用,
	  // 交换两个数的值
	  int a = 10;
	  int b = 20;
	  a = a^b;
	  b = a^b; //等量代换 a   a^b^b 结果是a 此句是把a赋值给b
	  a = a^b; //等量代换 a   a^b^a 结果是b 此句是把b赋值给a
      System.out.println(a);//20
	  System.out.println(b);//10
	}
}

位运算符:
注意:要做位运算,首先把数据转换为二进制补码,运算完后转回原码
<< 左移 >> 右移 >>> 无符号右移
注意是补码运算否则容易搞混
左移:数据往左移动,左边最高位丢弃,右边用0补齐;
右移:数据向右移动,空缺位补0,最高位是1的,最高位补1;
无符号右移:无论最高位是0还是1,空缺位都用0补齐。结果永远是正数
3<<2; // 12 相当于 3*2的2次方
8>>2; // 2 相当于 8/2的2次方

三目运算符:格式:表达式1?表达式2:表达式3;
如果表达式1的结果是true,则最终运算结果取表达式2的结果,否则取表达式3的结果。

int a=10,b;
       b=(a>8)? 100:200;
      /*三目运算符:
        好处:可以简化 if else 代码
        弊端: 因为是运算时,所以运算完必须由一个结果。
      */

注:运算符的运算顺序见我的收藏。

你可能感兴趣的:(Java学习)