数据类型
1.Java的八大基本数据类型为:
整型:
byte 字节型 1字节 8bit 最大存储数据量是255,存放的数据范围是-128~127之间
short 短整型 2字节 16bit 最大数据存储量是65536,数据范围是-32768~32767之间
int 整型 4字节 32bit 最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1
long 长整型 8字节 64bit 最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1
浮点型
float 单精度 4字节 32bit 数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F
double 双精度 8字节 64bit 数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加
字符类型
char 字符型 用单引号
布尔类型
boolean 布尔型 true/false(只有真假两种结果)
数据地域:
1.一个bit是计算机考研存储的最小的数据单位。即1位,只可能是0或1.
2.一个byte由八个bit组成,即八位,可以表示256个整数值,又由于byte在Java中有符号之分(即正负数),所以范围位-128~127.
3.一个char在Java中由两个byte组成,用来表示一个字符,即unicode编码,是无符号类型。
4.int和float在Java中由4个byte组成。
5.每个long或double型变量占用八个byte的存储空间。
6.1T=1024G,1G=1024M,1M=1024K,1K=1024B
3.对象数据类型(应用数据类型,类型)
所有用class,interface,abstract class定义的类;
String是Java定义的一个类。
String的数据存储方式和Java的基本数据类型是一致的。
String的定义方式
String str=“abc”;
String str-new String();
今日练习
- 根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
- 判定一个数字是否是素数
- 打印 1 - 100 之间所有的素数
- 输出 1000 - 2000 之间所有的闰年
- 输出乘法口诀表
- 求两个正整数的最大公约数
- 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
- 编写程序数一下 1到 100 的所有整数中出现多少个数字9。
- 求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本
身,如;153=1+5+3?,则153是一个“水仙花数”。) - 编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输
入,最多输入三次。三次均错,则提示退出程序 - 写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1
- 获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
- 输出一个整数的每一位.
- 完成猜数字游戏
代码如下:
package 比特作业;
import java.util.Random;
import java.util.Scanner;
public class 猜数字游戏 {
public void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("欢迎进入猜数字游戏!");
System.out.println("请输入一个数字:(范围是0-100)");
Random pc_game = new Random();
int pc_num = pc_game.nextInt(101);//随机产生一个小于101的整数
Scanner input = new Scanner(System.in);
int count = 5;//猜的次数,可自定义
while(count > 0)
{
System.out.println("您有"+count+"次机会!");
count--;
System.out.print("请输入猜的数字:->");
int user_num = input.nextInt();
if(pc_num == user_num)
{
System.out.println("you are right!");
count = 0;
}
else if(pc_num > user_num)
{
System.out.println("sorry, guess small!");
}
else if(pc_num < user_num)
{
System.out.println("sorry, guess big!");
}
}
System.out.println("游戏结束!");
input.close();
}
}
package 比特作业;
public class 打印素数 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int j;
for (int i = 2; i <= 100; i++) // 1不是素数,所以直接从2开始循环
{
j = 2;
while (i % j != 0)
j++; // 测试2至i的数字是否能被i整除,如不能就自加
if (j == i) // 当有被整除的数字时,判断它是不是自身
System.out.println(i); // 如果是就打印出数字
}
}
}
package 比特作业;
public class 获取二进制 {
// 以11为例子,//11:0000 0000 0000 0000 0000 0000 0000 1011
// 奇数位序列:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
// 偶数位序列:0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
public static void main(String[] args) {
int value=11;
System.out.println("偶数序列");
for(int i=31;i>0;i-=2){
System.out.print((value>>i)&1);
}
System.out.println("");
System.out.println("奇数序列");
for(int i=30;i>=0;i-=2){
System.out.print((value>>i)&1);
}
}
}
package 比特作业;
import java.util.Scanner;
public class 模仿3次密码 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("欢迎使用");
for(int i=0;i<3;i++){
System.out.println("请输入密码:");
@SuppressWarnings("resource")
Scanner in = new Scanner(System.in);
String password = in.next();
if(password.equals("987654")){
System.out.println("登陆成功");
break;
}
else{
System.out.println("密码错误,请重新输入,你还有"+(2-i)+"次输入机会");
}
}
}
}
package 比特作业;
public class 判断9 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num = 0;
int count = 0;//计数器
for (num = 1; num <= 100; num++) {
//判断个位上是否有 9
if (num % 10 == 9) {
count++;
}
//判断十位上是否有 9
if (num / 10 == 9) {
count++;
}
}
System.out.println(count);
}
}
package 比特作业;
public class 判断年龄 {
// TODO Auto-generated method stub
public static void main(String[] args) {
int age =20;
if(age > 0 && age < 18)
System.out.println("少年");
if(age > 19 && age < 28)
System.out.println("青年");
if(age > 29 && age <55)
System.out.println("中年");
if(age > 55)
System.out.println("老年");
}
}
package 比特作业;
import java.util.Scanner;
public class 判断素数{
public static void main(String[] args){
result();
}
/*判断输入的数字是否为质数*/
public static boolean judge(int x){
if(x==1||x==0){
return false;
}
for(int i=2;i<=Math.sqrt(x);i++){
if(x%i==0){
return false;
}
}
return true;
}
/*结果*/
public static void result(){
Scanner s = new Scanner(System.in);
System.out.print("请输入一个你想判断的数:");
int n = s.nextInt();
if(n>0){
if(judge(n)){
System.out.println("是素数");
}else{
System.out.println("不是素数");
}
}else{
System.out.println("请输入一个大于0的数");
result();
}
}
}
}
}
package 比特作业;
public class 求和 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i, j;
float max1=(float) 0.000000, max2=(float) 0.000000,max;
for(i=(int) 1.000000; i<=100; i+=2)
{
max1+=1.000000/i;
}
for(j=(int) 2.000000; j<=100; j+=2)
{
max2+=1.000000/j;
}
max=max1-max2;
System.out.printf("%d ",max);
}
}
package 比特作业;
public class 输出乘法口诀表 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("乘法口诀表:");
for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
{
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
}
}
package 比特作业;
public class 输出瑞年 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int year;
for(year=1000;year<2001;year++){
if((year%400==0)||(year%4==0&&year%100!=0)){
System.out.printf("%d ",year);
}
}
}
}
package 比特作业;
public class 输出整数的每一位 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=9527;
print(a);
}
//递归
public static void print(int a){
if(a>9){
print(a/10);
}
System.out.println(a % 10 +"");
}
}
package 比特作业;
public class 水仙花数 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//水仙花数是指:一个三位数,其各位数字的立方和等于该数本身
//例如:153就是一个水仙花数。
//153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
int count = 0;
for (int i = 0; i < 1000; i++) {
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai) {
System.out.println(i + "是水仙花数");
count++;
}
}
System.out.println("一共有" + count + "个水仙花数");
}
}