1.内存如何存放数据?
答:把数据比作现实当中的顾客/客人,把内存比作宾馆,所谓数据的存储就是在宾馆开一个房间,然后你住进宾馆里面。 int a;(a指客人,int指房间类型)
数据也是有不同种类的,不同数据开辟内存空间大小和个数是不一样的。
数据在存储之前,要先根据数据的需求(即类型)为它申请一块合适的空间
2.数据类型?
Int 整形数据 例如:1 10 100
存数据一般分为等号左边和右边
左边负责内存空间的申请/变量的声明
右边负责数据的存储
“=”:赋值,把右边的给了左边
3.变量,常量?
变量一直变的量,与变量想对应的常量;比如100。
Int a= 100;
System.out.println(a);
a =20;
System.out.println(a);
4.内存地址不好记,怎么办?
因为内存地址本来是一串16进制码且不固定的,不容易记忆,为了计算方便故通过内存中小房间的别名找到数据存储的位置
5.Java数据类型分类?
简单数据类型
数值型 整数类型(byte, short, int, long)
浮点类型(float, double)
字符型(char)
布尔型(boolean)
复合数据类型
类(class)
接口(interface)
数组
6.计算机存储单位?
最低位 bit 位 0/1
byte 字节 1字节=8bit
kb 千字节 1kb=1024byte
m 兆 1m=1024kb
g 吉 1g=1024m
t 太 1t=1024g
... ...
7.整形类型 byte short int long?
public class Case2 {
public static void main(String[] args) {
// 整形类型 byte short int long
// byte=1字节 -2^7 - 2^7-1 -128 - 127
// short=2字节=16bit -32768 - 32757
// int=4字节=32bit 2^63 - 2^63-1
// long=8个字节=64bit
// 1个整形数字默认是int型
byte a=127;
}
}
8.浮点型float,double?
public class Case3 {
public static void main(String[] args) {
//浮点 float-4个字节 double-8个字节
//小数默认就是double类型
double a=10.2;
System.out.println(a);
float b=10.3f;
System.out.println(b);
}
}
注意:浮点型必须加f,如果不加会被默认为double型
9.字符char ?
public class Case4 {
public static void main(String[] args) {
//char字符 a b f 字符串 hello
//常量和变量 int a=10;
// "" 分别 "A" A 加""指的是常量 不加的是变量
//字符 '' 字符串""
char leter='a';
System.out.println(leter);
}
}
注意:
char leter=a;
默认a为一个变量,变量不可以放在等号右边,除非里面有值或声明过。既没有没有值又没有声明过就会出错.
char leter='aaaa';
错误,字符里面只能放一个单个letter
10.布尔值 boolean ?
public class Case5 {
public static void main(String[] args) {
//布尔值 boolean 1bit 0/1 true/flase
boolean rs=false;
System.out.println(rs);
}
}
注意:boolean表示真或者假。
11.字符串String?
不属于八种类型,数组的思想
public class Case6 {
public static void main(String[] args) {
//string 存放一串字符用到
String str="hello world";
System.out.println(str);
}
}
注意:字符串相加还是字符串
12.使用变量的步骤?
第一步:声明变量
数据类型 变量名;
int money;
第二步:赋值
变量名 = 数值;
money = 1000 ;
第一步和第二步可以合并
数据类型 变量名=数值;
int money = 1000;
第三步:使用变量,即“取出数据使用 ”
13.数据类型的练习?
public class Case7 {
public static void main(String[] args) {
double mark=98.5;
String name="张三";
char gender='男';
System.out.println(mark+name+gender);
}
}
注意:使用“+”号可以连续输出信息
14.变量命名规则?
变量名=首字母+其余部分
首字母可以为 字母、下划线、$
int a=10; Int _a=10; int $a=10;
其余部分可以为 数字、字母、下划线‘_’ 、‘$’ 符号
Int a1=10; int aaaa=10; int a$=10; int a_=10;
见名知意思
Sting name="";
char gender="";
驼峰命名方式
double mathMark=10;
myFirstMark
变量命名规范:
简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的
首字母大写。
15.命名规则小结?
保留字和关键字
关键字:java已经占用的 有50个
保留字:目前还没被使用,但是被提前占用 goto、const
16.使用变量常见错误?
1.先声明变量并赋值,然后才能使用
public class Error1 {
public static void main(String[ ] args) {
String title;
System.out.println( title );
}
}
解决办法
String title; //声明变量title
title = "Java" ; //赋值
2.代码错误 int %hour = 18;
public class Error2 {
public static void main(String[ ] args) {
int %hour = 18;
System.out.println(%hour);
}
}
标记“%”上有语法错误,删除标记
3.声明两个同名变量导致编译错误
public class Error3 {
public static void main(String[ ] args) {
String name = "张三";
String name = "李四";
}
}
正确方案 Name、name
作业
public class zuoye {
public static void main(String[] args) {
String brand="爱国者F928";
double weight=12.4;
String type="内置锂电池";
int price=499;
System.out.println(brand+weight+type+price);
}
}
17.类型转换?
类型转换的顺序:
在java中简单数据类型从低级到高级的顺序为:
(byte,short,char)---int---long---float----double
类型转换的原则:
1.低级转高级:低级变量可以直接转换为高级变量,称之为自动类型转换。
2.高级转低级:高级变量转低级需要强制类型转换。
3.平级之间的转换:byte,short,char属于平级,他们之间需要强制类型转换。
例如:
public class Case {
public static void main(String[] args) {
//低级转高级 byte char short 自动转换
byte a=100;
int b=a;
System.out.println(b);
//高级转低级 强制转换
double c=10.5;
short d=(short) c;
System.out.println(d);
//同级之间的转换
char e='5';
short g=(short)e;
System.out.println(g);
short s1=1;
s1=(short) (s1+1);
System.out.println(s1);
}
}
18.类型转换常见错误?
1.int 不可以自动转换成char
int age = 19;
char sex = '女';
char result = age + sex
2.double不可以自动转化成int
int a = 10;
int b = 10.2;
double c = 10;
c = a;
int d = c;
19.与控制台进行交互?
Scanner input=new Scanner(System.in);
20.练习:模拟支付平台
import java.util.Scanner;
public class Case1 {
public static void main(String[] args) {
// GUI SWING
Scanner input=new Scanner(System.in);
System.out.println("请输入衣服的标价");
int price=input.nextInt();
System.out.println("请输入衣服的折扣");
int discount=input.nextInt();
double pay=price*discount*0.1;
System.out.println("您的应付金额是"+pay);
}
}
注意:
Int price=198; 这样就被写死了
int price=input.nextInt(); 用户可以往进输东西
21.运算符和表达式?
操作数+运算符=表达式
22.赋值运算符?
=表赋值 ==表相等
例如 a = ( b + 3 ) + ( b – 1 )
23.算数运算符 ?
+ 加法
- 减法
* 乘法
/ 除法
% 取模(取余数)
举例
public class Case3 {
public static void main(String[] args) {
int a=1+2;
int b=2+1;
int c=2*5;
int d=10/3;
int e=10%3;
//当+号某一侧有String时结果为String
String f="10"+"3";
String g="hello "+"world!";
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
}
}
24.算数运算符的练习?
import java.util.Scanner;
public class Case4 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
double html=0;
double java=0;
double oracle=0;
double minus=0;
double avg=0;
System.out.println("请输入java的成绩");
java=input.nextDouble();
System.out.println("请输入html的成绩");
html=input.nextDouble();
System.out.println("请输入oracle的成绩");
oracle=input.nextDouble();
minus=html-java;
System.out.println("html与java之差为"+minus);
avg=(html+java+oracle)/3;
System.out.println(avg);
}
}
心得:做之前先把用到的变量,整理出来,然后一个一个使用,避免做的时候临时在想
25.算数运算符常见的考点:
1.“/”的用法
1.整数除以整数,默认会取整(所以1/2结果会是0)
2.小数除以整数或者整数除以小数结果是double类型的
3.除以0呢?
2.”+”
当+任意一侧是字符串时,表示的不是算数运算符里的加号,而是表示字符串中的连接符号
举例
public class Case5 {
public static void main(String[] args) {
// ++ -- 自加 自减
/*int a=10;
a++;
System.out.println(a);
++a;
System.out.println(a);
a--;
System.out.println(a);
--a;
System.out.println(a);*/
//++ -- 与赋值运算符= 一起使用
int a=10;
//int b=a++; a=11 b=10
int b=++a; a=11 b=11
System.out.println(a);
System.out.println(b);
}
}
心得:遇到与复杂的赋值语句笔试时,结题技巧先确定一个数的值,再确定另一个数的值,排除法。
26.关系运算符?
关系运算符 描述
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
!= 不等于
关系运算符的作用:用来做比较运算
比较的结果:boolean类型
举例
public class Case6 {
public static void main(String[] args) {
// > < >= <= != ==
int a=10;
int b=12;
boolean rs= a>b;
System.out.println(rs);
}
}
心得:关系运算符比较得有结果,这个结果为真或假,结果就是一个boolean值。
27.逻辑运算符?
&& 全1为1 2者都成立为真
|| 全0为0 有一个是假就成立
! 取反
举例
public class Case7 {
public static void main(String[] args) {
boolean rs=(10>3)&&(5>2);
boolean rs2=(10>3)||(2>5);
boolean rs3=!true;
System.out.println(rs);
System.out.println(rs2);
System.out.println(rs3);
}
}
28.位运算符?
按位与&(全1则1,只要有0则0)
按位或|(全0则0,只要有1则1)
按位异或 (相同为0,不同为1)
按位左移 (乘2)
按位右移 (除2)
举例
public class Case8 {
public static void main(String[] args) {
int a=10;
int b=11;
/* 1010 1010
10100 0010
--------- -------
20 2*/
int c=a&b;
int d=a|b;
int e=a^b;
int f=a<<2;
int g=a>>2;
System.out.println(c); 10
System.out.println(d); 11
System.out.println(e); 1
System.out.println(f);
System.out.println(g);
}
}
心得:位运算就是把10进制先转成2进制,计算完成后在转换到10进制
29.运算符的优先级?
最高的优先级:小括号,即( )
最低的优先级:赋值运算符,即=
优先级顺序:算术运算符>关系运算符>逻辑运算符
30.练习:学员操作——模拟幸运抽奖
import java.util.Scanner;
public class Case9 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入4位会员卡号:");
int num=input.nextInt();
int qian=num/1000;
int bai=num%1000/100;
int shi=num%100/10;
int ge=num%10;
int he=qian+bai+shi+ge;
System.out.println("各位数字值和是"+he);
System.out.println("是幸运客户吗?"+(he>20));
}
}
心得:算术运算符(%、/)的使用
使用Scanner类接收用户输入
关系运算符和boolean类型的用法
4位数字的各个位数的求法
31.拓展部分:水仙花
import java.util.Scanner;
public class Case10 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//水仙花 153=1^3+5^3+3^3
System.out.println("请输入一个数字:");
int num=input.nextInt();
int bai= num/100;
int shi=num/10%10;
int ge=num%10;
int he=bai*bai*bai+shi*shi*shi+ge*ge*ge;
System.out.println(bai);
System.out.println(shi);
System.out.println(ge);
System.out.println(he);
}
}
心得:想办法求各个位上的数字