Java基础学习2
- 一、变量
- 1、变量的本质:
- 2、 三大要素
- (1)变量名:
- (2)变量的定义和使用:
- 二、运算符
- 1、赋值运算符
- 2、算术运算符
- 3、关系运算符
- 4、逻辑运算符
- 5、位运算符
- 三、练习
- 四、开发环境
一、变量
1、变量的本质:
(1)内存中的一个存储空间。
(2)另一种说法:程序运行过程中,其值可以发生改变的量。
(3)每一个变量存储空间是相互独立的。
通过内存地址取数据:
1. 十六进制的数,不好记 。
2. 内存地址是随机分配的
2、 三大要素
1.)变量名:内存空间的名称。作用相当于内存地址。快速的找到内存空间,从而取出数据。
2.)变量值:其中存储的数据。其值可以发生变化。
3.)变量类型:存储的数据的类型。向内存申请空间。不同类型的数据,分配到的内存空间大小不一。
数据类型:
基本数据类型(8)
数值:
整数:
byte 1个字节 8bit -128 ~127
short 2个字节 16bit -2^15~2^15-1 -32768~32767
int 4个字节 32bit -2^31~2^31-1 -2,147,483,648~2,147,483,647
long 8个字节 64bit -2^63~2^63-1
小数:
float 4个字节 指数占8位
double 8个字节 指数占11位
字符:存储单个字符 ‘a’'0' '#' '男' ‘ ’
char 2个字节 16bit 0-2^16-1 0-65535
'A'----65
'a'----97
'0'----48
可以运算的,可以比较的 ‘a’~ 'z' 'A'+32
布尔:
boolean 存储真或者假 true false
引用数据类型
字符串 String 存储0个或多个字符 “a”“”"abc" "0123"
选择数据类型:
是否会参与运算?
年龄 酸奶的价格3.5 性别‘男’ 新闻详情 是否登录成功
身份证号:String 电话号码:String 密码:字符串
实际演示:
public class Demo01{
public static void main(String[] args){
byte b=3;//byte [-128~127]
short s=-32763;
int a=2147483647;//过大的整数
long ll=2147483647;//过大的整数: 2147483648
float f=2147483648f;
double d=2147483648L;
//int -->byte,short 大字节-->小字节 如果数据无损失,就正常编译
//int --->long 如果在int范围之内,正常编译,如果超过int范围,需要在数字末尾添上L
//byte<short char<int<long--->float--->double 正常编译的
//自动类型转换 :1、数据类型要兼容 2、小转大
char c='a';// 97
int ca=c;
System.out.println(ca);
//------------------------------------
int num=2147483647;
int num2=1;
int num3=num+num2; //整型溢出
System.out.println(num3);
byte bb=3+7;
byte b1=127;
byte b2=(byte)(b1+1); //从int转换到byte可能会有损失
System.out.println(b2);
short s1=23;
//short s2=s1-2;
//变量之间的运算,再赋值,数据有可能会有损失,在byte,short时是会编译出错的,int编译正常,运行有误
//强制类型转换 :1、数据类型要兼容 2、大转小
//有数据损失的风险,所以要求程序强制编码 :(转换的类型)
double dd2=3.5;
int n=(int)dd2;
System.out.println(n);
int n1=23;
double dd3=n1;
int n2=(int)dd3;
double dd4=n1+3.5;//表达式的结果 其实是表达式中范围最大的那种类型
/*char c='a';// 97
int ca=c;
System.out.println(ca);*/
int ca2=ca-32;
char cd=(char)ca2;
System.out.println(cd);
int nnn=23;
nnn+=2; //nnn=nnn+2;
System.out.println(nnn);
//int sum+=23; //int sum; sum=sum+23;
byte b5=12;
//b=b+12;
b5+=12;//编译正常
}
(1)变量名:
1.)命名规则:
1. 只能由字母、数字、下划线、$组成,不能数字开头。
2. 不能使用关键字 class true等。
3. 小驼峰法:除第一个单词外,每个单词首字母大写 stuName stuJavaScore
4. 见名知意 age name
5. 区分大小写 name Name
(2)变量的定义和使用:
- 声明变量:向内存申请空间
语法:数据类型 变量名; - 赋值 :变量名=值;
前两部可以合二为一: 数据类型 变量名=值;
- 使用 :通过变量名访问变量值
字面常量:整数,默认是int 小数,默认是double
//练习: 手机信息 :品牌:华为 价格:2999.9元 是否打折中:true, 颜色:白。
public class phone{
public static void main(String[] args){
String model="华为";
char color='白';
double price=2999.9;
boolean zhe=true;
System.out.println("手机信息:"+"\n品牌:"+model);
System.out.println("价格:"+price+"元");
System.out.println("是否打折:"+zhe+"\n颜色:"+color);
}
}
二、运算符
1、赋值运算符
变量名=表达式;
符合赋值运算符 += -= *= /=
2、算术运算符
+ - * /(整除) %(求余)
++: ++在后 先用再加
++在前 先加再用
-- : 与++类似
3、关系运算符
> < == >= <= !=
char类型是可以比较的:
判断一个字符是不是大些字母?
浮点型在内存存储可能是不精确,所以不适合==
不能连写 a>b >c
==等于
关系表达式 的结果都是boolean类型
4、逻辑运算符
连接多个boolean表达式
逻辑与 && :同真为真,遇假则假
逻辑或 || :有真则真,同假则假
逻辑非 !: 取反
&&和||有短路功能
优先级:!>算术运算符>关系运算符>&&、||>赋值运算符
先运算,后比较,再连接,最后赋值
推荐使用(),显式提升优先级。
5、位运算符
以二进制的形式运算
>> 右移 3>>1 -----1 相当于除法
<< 左移 3<<1 -----6 相当于乘法
& 3&5
判断奇偶数 :&1 获取二进制最末位数字
逻辑运算:连接两个条件,同真为真,遇假则假
和逻辑与&& 区别,就是不支持短路
| 3|5 7
对于任意一个数字,|1,可以把末位置成1
逻辑运算:有真则真,同假则假
和逻辑与|| 区别,就是不支持短路
^ 异或 不同为1,相同为0
3^5 011 101 110--6
6^5 110 ^ 101 011--3
一个数,对另外一个数进行两次异或运算,就能得到他本身。----加密,解密
三、练习
1、拆分四位数。
public class fj{
public static void main(String[] args){
int n=1234;
int g=n%10;
int s=n%100/10;
int b=n/100%10;
int q=n/1000;
System.out.println("个位:"+g+"、十位:"+s+"、百位:"+b+"、千位:"+q);
}
}
2、今天周日(7),12天后周几
import java.util.Scanner;
public class week {
public static void main(String[] args) {
System.out.println("请输入今天是星期几:");
Scanner sc = new Scanner (System.in);
int weeks = sc.nextInt();
System.out.println("请输入所需多少天后是周几的天数:");
int day = sc.nextInt();
if((day + weeks)>=7) {
System.out.println(day + "天后是周" +(day + weeks) % 7 );
}
else {
System.out.println(day + "天后是周" + (day+weeks));
}
}
}
#从控制台(键盘)获取数据
java.lang包下的内容是不需要单独导入的。
先导包 java.util.Scanner;
Scanner input=new Scanner(System.in);
接收一个整数nextInt()
接收一个浮点数nextDouble();
接收一个字符串next()
接收boolean nextBoolean()
但是,没有char类型 c
== 基本数据类型之间,比较的数值
== 引用数据类型之间,比较的地址
String 类型的数据,比较值相等 变量.equals(变量)
四、开发环境
文本编辑器 : vscode、 notepad++ 、editplu、s sublime
IDE:继承开发环境 编写,编译,运行
Eclipse(免费) MyEclipse(收费) IDEA(收费)
在官网下载安装与自己jdk所适应的Eclipse版本
- 创建一个项目
- src–创建类–编写代码
- Ctrl+S–自动编译
- 运行 Ctrl+F11
字体放大:Window-Preferences-输入font---Basic--Text font