Java简介.Java中的数据类型和运算符,java.java
Java简介.Java中的数据类型和运算符,java.java
学习目标:
1. Java简介
2. JDK的安装与环境搭建
3. 变量
4.Java中的数据类型
5.运算符
一.Java简介
Java的优势
1.跨平台(”一次编译,到处运行”)
2.健壮、安全
Java在安全性上下了很大功夫,使用Java可以构建防病毒,防篡改的系统。开源、安全处理机制。
3.分布式
4. 多线程
5. 面向对象
6. 高性能
Java发展方向
1.JavaSE (Java Standard Edition):Java标准版
基础,可以开发桌面应用、图形化应用等
2. JavaEE(Java Enterprise Edition):Java企业版
开发企业级应用
3. JavaME(Java Micro Edition)
手持设备应用开发(eg:安卓、机顶盒嵌入程序)
二: JDK的安装与环境搭建
基本概念:
JDK(Java Development Kits)-- Java开发工具集
JRE(Java RunTime Environment)Java运行时环境
设置环境变量:
1添加JAVA_HOME环境变量,指向JDK安装目录
2修改path:用于指定操作系统的可执行指令的路径
DOS命令:
1.切换目录:
cd /d 目标目录
2.编译java源代码
javac -d . java源文件名称
3.运行.class文件(字节码文件)
java 包.class类名
三:变量
变量:程序执行中数据可变的一块存储空间
变量名:定义变量的标识符
变量值:内存单元中所装载的数据
每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。
eg:
int i = 20;
int y;
y = i +10;
四:数据类型
整数类型
Java语言的整型常量默认为int。
要声明long型可以加‘l’或‘ L’,如:long l = 3L;
浮点类型
Java浮点型常量默认为double型,如要声明一个变量为float型,则需在数字后面加f或F,如:
double d = 3.14;
float f = 3.14f;
转义字符
数据类型的转换:
1.自动转型:小范围数据转换成大范围的数据
大范围数据类型 变量名=小范围数据类型的值;
eg: long x=5;
2.强制转型:大范围数据类型转换成小范围数据类型
小范围数据类型 变量名=(小范围数据类型)大范围数据类型的值;
eg: int a=(int)5L;
3. boolean 类型不能转换成任何其它数据类型
package org.westos.www;
public class NumberDemo
{
public static void main(String[] args)
{
int a=10;
long b=5L;
long c=a; // 自动转型:小范围数据转换成大范围的数据
System.out.println(c);
int x=(int)b; // 强制转型:大范围数据转换成小范围数据
System.out.println("强制转型成int后:"+x);
float f=(float)2.3; // 强制转型,将double类型转换为float类型
System.out.println("强制转型成float后:"+f);
}
}
五:运算符
算术运算符:+ 、 - 、 * 、 / 、 % 、 ++ 、 --
赋值运算符:= 、 += 、 -= 、 *= 、 /= 、 %=
关系运算符:> 、 < 、 >= 、 <= 、 == 、 !=
逻辑运算符:! 、 & 、 | 、 && 、 ||
位运算符:& 、 | 、 ^ 、 ~ 、 >> 、 << 、 >>>
字符串连接运算符:+
三目运算符 :?:
1.易混淆运算符:
1. 自增运算符:++
易混淆的点:a++ 先保存旧值,再自增,用旧值参加运算
++a 直接自增,用自增后的值参加运算
package org.westos.www;
public class Difficult
{
public static void main(String[] args)
{
int i=0;
i=i++;
/*
* int temp=i; 保存i的旧值
* i=i+1; 对i进行自增
i=temp;
**/
System.out.println("i="+i);
System.out.println("********************");
int j=0;
j=++j;
/**
* j=j+1; 直接自增,不保存旧值
j=j;
*/
System.out.println("j="+j);
}
}
2. 短路与&& 如果前面的判断结果为false,则后面的判断不再执行。
非短路与& 每一个判断逻辑都要执行
3. 短路或|| 如果前面的判断结果为true,则后面的判断不再执行。
非短路或 | 每一个判断逻辑都要执行
2.位运算符:
在计算机中数字的运算都是按照“补码”的形式运算的。
正数的原码、反码、补码是相同的;
负数的反码是其原码的除了符号位以外的二进制位取反。
负数的补码是反码加1。
符号位是最左边的那个二进制位,0代表正数,1代表负数。
按位与:& 两个二进制位都为1,结果才为1;其余情况结果为0;
按位或:| 只要有一个二进制位为1,结果就为1;两个二进制位都为0,则结果为0;
按位异或:^ 相同的两个二进制位结果为0,不同的二进制位结果为1。
按位取反:~ 0变1,1变0.
右 移: >> 右移后,左边的二进制位用符号位来补,正数补0,负数补1
左 移: << 左移后,右边的二进制位用0来补。
无符号右移:>>> 右移后,左边的二进制位用0来补。
package org.westos.www;
public class BitOperate
{
public static void main(String[] args)
{
int a=10;
int b=3;
System.out.println("10&3的结果是:"+(a&b)); // 2
int c=-8;
System.out.println("-8按位取反的结果:"+(~-8)); // 7
System.out.println("-8右移3位后:"+(-8>>3)); // -1
System.out.println("-8无符号右移3位后:"+(-8>>>3));
}
}
3.三目运算符:
结果返回boolean值的表达式?"结果为true时内容":"结果为false时内容"
package org.westos.www;
public class GiveOperate
{
public static void main(String[] args)
{
int a=5;
a+=3; // 相当于a=a+3;
System.out.println("a="+a); // 8
int b=6;
b*=7; // 相当于b=b*7;
System.out.println("b="+b); // 42
int c=100;
c%=3; // 相当于c=c%3;
System.out.println("c="+c); // 1
}
}
六.补充:十进制与二进制的转换
十进制转换为二进制:
方法:判断十进制数字是否有小数部分,若没有,只需将整数部分连续除以2,记下过程中的余数,直到商为0,然后将余数倒序排列即可得到二进制数值;若有小数,将整数部分和小数部分分开计算,小数部分连续乘以2,每次都取前次的小数部分,记下每次积的整数部分(1或0),然后顺序排列,添上整数部分可得到二进制数值
二进制转换为十进制:
方法:将二进制每一位上的0或1乘以2的所在位数的次方,整数部分的指数为正,小数部分的指数为负。
七.例
package org.baidu.www;
import java.util.Scanner;
public class Info
{
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in); // 实例化一个Scanner对象
System.out.print("请输入语文成绩:");
int chinese=scan.nextInt(); // 阻塞控制台,等待用户输入整数类型
System.out.print("请输入数学成绩:");
int math=scan.nextInt(); // 阻塞控制台,等待用户输入整数类型
int total=chinese+math;
System.out.println("总分是:"+total);
}
}
相关文章
- 暂无相关文章
用户点评