首页 > 编程语言 >第二周Java课后实验及实践问题整理

第二周Java课后实验及实践问题整理

时间:2023-09-13 10:37:36浏览次数:35  
标签:Java String System 0.05 第二周 课后 println public out

第二周Java课后作业报告

信2205-1班 20223688 孙怡然

一、p38枚举类型

1、代码示例

public class EnumTest {

public static void main(String[] args) {

Size s=Size.SMALL;

Size t=Size.LARGE;

//s和t引用同一个对象?

System.out.println(s==t); //false

//是原始数据类型吗?

System.out.println(s.getClass().isPrimitive());//false

//从字符串中转换

Size u=Size.valueOf("SMALL");//valueof是要把参数中给的值,转化为String类型

System.out.println(s==u); //true

//列出它的所有值

for(Size value:Size.values()){

System.out.println(value);

}

}

}

enum Size{SMALL,MEDIUM,LARGE};

2、运行结果

二、p45动脑动手:了解原码、补码和反码并编写程序进行各种位操作

1、代码示例

public class Demo{

public static void main(String[] args){

int a=3;

int b=4;

System.out.println(a & b); //输出0

System.out.println(a | b); //输出7

System.out.println(a ^ b); //输出7

System.out.println( ~ b ); //输出-5

System.out.println( b << 2 ); //表示b左移2位,输出13

System.out.println( b >> 2 ); //表示b右移2位,输出1

System.out.println( b >>> 2 ); //表示b无符号右移2位,输出1

}

}

2、运行结果

Java中的整数的存储和运算是采用补码形式进行的。

三、p47两数相加

1、代码示例

import javax.swing.JOptionPane; // import class JOptionPane

public class Addition {

public static void main( String args[] )

{

String firstNumber, // first string entered by user

secondNumber; // second string entered by user

int number1, // first number to add

number2, // second number to add

sum; // sum of number1 and number2

// read in first number from user as a string

firstNumber =

JOptionPane.showInputDialog( "Enter first integer" );

// read in second number from user as a string

secondNumber =

JOptionPane.showInputDialog( "Enter second integer" );

// convert numbers from type String to type int

number1 = Integer.parseInt( firstNumber );

number2 = Integer.parseInt( secondNumber );

// add the numbers

sum = number1 + number2;

// display the results

JOptionPane.showMessageDialog(

null, "The sum is " + sum, "Results",

JOptionPane.PLAIN_MESSAGE );

System.exit( 0 ); // terminate the program

}

}

2、运行结果

四、p52变量的作用域

动手动脑:Java变量遵循“同名变量屏蔽原则”,请编写代码在不同地方定义一些同名变量,看看输出的到底是哪个值

1、代码示例

public class VariableScopeExample {

private static int x = 10;

public static void main(String[] args) {

int x = 20;

System.out.println("内部x: " + x); // 输出内部变量x的值,应该是20

}

}

2、运行结果

五、p54在运行时读取用户输入(使用Scanner类)

1、代码示例

import java.util.*;

public class InputTest

{

public static void main(String[] args)

{

Scanner in = new Scanner(System.in);

// get first input

System.out.print("What is your name? ");

String name = in.nextLine();

// get second input

System.out.print("How old are you? ");

int age = in.nextInt();

int i;

String value="100";

i=Integer.parseInt(value);

i=200;

String s=String.valueOf(i);

// display output on console

System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));

}

}

2、运行结果

六、p56 Java中的类型转换

Java中每个数据类型所占的位数和表示数值的范围,能得出什么结论?

java中有8种基本数据类型:byte、int、short、long、boolean、char、float、double

对应的类为:Byte、Int、Short、Long、Boolean、Charecter、Float、Double

逻辑型:boolean

文本型:char

整数型:byte、short、int、long

浮点型:float、double

byte:    1字节 -128~127

short:   2字节 -2^15~2^15-1

int :      4字节 -2^31~2^31-1

long:    8字节 -2^63~2^63-1

boolean:1字节 true false(java中不能以0或非0代替)

float:    4字节 -3.403E38~3.403E38

double:8字节 -1.798E308~- 4.9E324

char:    2字节  ’\u0000‘~‘ ’\uffff ‘(16进制的,换算过来即0~65535)

(1字节等于8位)

结论: 数据类型所占位数越大,数值范围越大,低位数向高类型数据转化时,可能有精度损失,高位数向低位数类型数据转化时,会数据溢出。

七、p58 动手实验

1、代码示例

public class TestDouble {

public static void main(String args[]) {

System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));

System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));

System.out.println("4.015 * 100 = " + (4.015 * 100));

System.out.println("123.3 / 100 = " + (123.3 / 100));

}

}

2、运行结果

使用double类型的数值进行计算,其结果是不精确的

八、p60 为什么double类型的数值进行运算得不到数学上精确的结果?

因为计算机进行的是二进制运算,我们输入的十进制数字会先转换成二进制,进行运算后再转换为十进制输出。我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位的,比如1/3),而Double类型的数值只有64bit,后面舍去的位数就一定会带来误差,无法得到“数学上精确”的结果。

九、p61 怎样处理精度损失

1、代码示例

import java.math.BigDecimal;

public class TestBigDecimal

{

public static void main(String[] args)

{

BigDecimal f1 = new BigDecimal("0.05");

BigDecimal f2 = BigDecimal.valueOf(0.01);

BigDecimal f3 = new BigDecimal(0.05);

System.out.println("下面使用String作为BigDecimal构造器参数的计算结果:");

System.out.println("0.05 + 0.01 = " + f1.add(f2));

System.out.println("0.05 - 0.01 = " + f1.subtract(f2));

System.out.println("0.05 * 0.01 = " + f1.multiply(f2));

System.out.println("0.05 / 0.01 = " + f1.divide(f2));

System.out.println("下面使用double作为BigDecimal构造器参数的计算结果:");

System.out.println("0.05 + 0.01 = " + f3.add(f2));

System.out.println("0.05 - 0.01 = " + f3.subtract(f2));

System.out.println("0.05 * 0.01 = " + f3.multiply(f2));

System.out.println("0.05 / 0.01 = " + f3.divide(f2));

}

}

2、运行示例

十、p64动手动脑

1、代码示例

import java.math.BigDecimal;

public class TestBigDecimal

{

public static void main(String[] args)

{

int x=100;

int y=200;

System.out.println("x+y="+x+y);

System.out.println(x+y+"=x+y");

}

}

2、运行结果

“+”符号在第一个语句当中是连接字符串,在第二个语句中是做运算符

标签:Java,String,System,0.05,第二周,课后,println,public,out
From: https://www.cnblogs.com/Sunyiran/p/17698832.html

相关文章

  • 个人项目:Java实现论文查重
    Github地址:https://github.com/SLkHs/3121004696Java实现简易论文查重软件工程https://edu.cnblogs.com/campus/gdgy/CSGrade21-12作业要求https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014作业目标实现个人项目:论文查重PSPPSP2.1Perso......
  • java consumer接口
    参考:https://blog.csdn.net/weixin_44230693/article/details/113847162consuemrvoidaccept(Tt):对给定的参数执行此操作。defaultConsumerandThen(Consumerafter):返回一个组合的Consumer,依次执行操作,然后执行after操作。Consumer接口也称为消费型接口,它消费的数据的数据......
  • java supplier接口
    参考:https://blog.csdn.net/m0_61366135/article/details/130557475函数式接口概述有且仅有一个抽象方法的接口Java中的函数式编程体现就是Lambda表达式所以函数式接口即可以适用于Lambda使用的接口supplierJava中的Supplier接口是一个函数式接口,它不需要任何参数输入......
  • java序列化与反序列化
    理解Java序列化和反序列化serialization(序列化):将java对象以一连串的字节保存在磁盘文件中的过程,也可以说是保存java对象状态的过程。序列化可以将数据永久保存在磁盘上(通常保存在文件中)。deserialization(反序列化):将保存在磁盘文件中的java字节码重新转换成java对象称为反......
  • 买彩票能中大奖?用Java盘点常见的概率悖论 | 京东云技术团队
    引言《双色球头奖概率与被雷劈中的概率哪个高?》《3人轮流射击,枪法最差的反而更容易活下来?》让我们用Java来探索ta们!悖论1:著名的三门问题规则描述:你正在参加一个游戏节目,你被要求在三扇门中选择一扇:其中一扇后面有一辆车;其余两扇后面则是山羊。你选择了一道门,假设是一号门,然后......
  • java获得音频比特率
    <dependency> <groupId>it.sauronsoftware</groupId> <artifactId>jave</artifactId> <version>1.0.2</version> </dependency>maven下载不成功的话,可以手动下载,下载地址:http://www.sauronsoftware.it/projects/ja......
  • JavaSE(IDEA)
    JavaSE(IDEA)publicclassMain{publicstaticvoidmain(String[]args){//单行注释////输出一个Hello,WorldSystem.out.println("Helloworld!");}}//多行注释/*注释*//*我是多行注释可以注释一段文字*/......
  • Java 基本类型和包装类
    Java是基于对象的,所以我们都需要以对象的想法来进行思维。但Java又提供了8个基本类型,这8个基本类型基本上都和数字有关,是直接可以使用的类型。 基本类型大小包装器类型boolean/Booleanchar16bitCharacterbyte8bitByteshort16bitShortint32......
  • 梯度下降法课后小题
    梯度下降法解决优化的问题考虑优化问题\[minf(x)=x_1^2+2x_2^2+4\]1.写出梯度算法求解该问题的迭代公式,详细阐述迭代公式每项的意义。\[f(x)=x_1^2+2x_2^2+4\tag{1}\]\[\frac{\partialf(x)}{\partialx_1}=2x_1,\frac{\partialf(x)}{\partialx_2......
  • Java中Comparable与Comparator的区别
    Java中的Comparable和Comparator都是比较有用的集合排序接口,但是这俩接口使用却有着明显区别,具体使用哪一个接口,今天我们来一起了解下。Comparable接口Comparable是一个排序接口,位于java.lang包下面,实现该接口的类就可以进行自然排序。先看下Comparable接口的定义:pa......