- CarieVinne
-
久雅科技面试题 【JAVA软件工程师】
1、基本集合类有哪些,各自的特点?
集合类型主要有3种:set(集)、list(列表)和map(映射)。
List 关心的是索引,与其他集合相比,List特有的就是和索引相关的一些方法:get(int index) 、 add(int index,Object o) 、 indexOf(Object o) 。
Set关心唯一性,它不允许重复。
Map关心的是唯一的标识符。他将唯一的键映射到某个元素。当然键和值都是对象。
2、下面代码的运行结果:(A)
public class Foo {
public static void main(String[] args) {
String s;
String.out.println("s="+s);
}
}
A.由于String s没有初始化,代码不能编译通过 B.代码得到编译,输出结果为"s="
C.代码得到编译,并输出"s=null" D.代码得到编译,但捕获到NullPointException异常
3、请说明equal和==的区别。
int i=1;int j=1;
在一个判断条件中使用i==j是否为true?
如果i和j是integer呢?
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
==比较的是2个对象的地址,而equals比较的是2个对象的内容。
4、编写一个方法用于奇偶数判定。
int num=0;
System.out.println("请输入一个整数:");
Scanner inputScanner=new Scanner(System.in);
num=inputScanner.nextInt();
if(num%2==0){
System.out.println(num+"为偶数");
}else{
System.out.println(num+"为奇数");
}
5、以下这段代码是否正确:
String[] name={"tom","dick","harry"};
for(i=0;i<=name.length;i++){
System.out.print(name[i]+" ");
}
这段代码错误,会触发“ArrayIndexOutOfBoundsException”异常,这是代码在尝试访问不在数组的索引取值范围内的元素时会显示的运行时错误消息。
6、以下两个打印,分别输出什么结果:
double amount1=2.0;
double amount2=1.1;
double amount3=0.9;
System.out.println(amount1-amount2==amount3);
BigDecimal damount1=newBigDecimal("2.0");
BigDecimal damount2=newBigDecimal("1.1");
BigDecimal damount3=newBigDecimal("0.9");
System.out.println(damount1.subtract(damount2).equals(damount3));
7、jsp和servlet有何区别?
jsp在本质上就是servlet但是两者的创建方式不一样。
servlet完全是Java程序代码构成擅长于流程控制和事务处理,而通过jsp来生成动态网页;jsp由HTML代码和JSP标签构成,可以方便地编写动态网页。
因此在实际应用中采用servlet来控制业务流程,而采用JSP来生成动态网页。在struts框架中,jsp位于MVC设计模式的视图层,而servlet位于控制层。
8、以下说法错误的是?(A)
A.session存在服务器,cookie存在硬盘
B.session机制采用的是服务器端保持状态,但是在应用过程中借助于cookie机制来达到保存标识的目的,从而实现用户登录
C.cookie只与你的主机(域)有关,与select和jsp页面无关
D.cookie中不能直接存取java对象,session中可以存对象
9、下面关于forward和redirect的描述,不正确的是?(D)
A.执行forward时,浏览器不知道服务器发送的内容从何而来,地址栏还是原来的地址
B.执行forward时,服务器端告诉浏览器重新去请求地址
C.forward是内部重定向,redirect是外部重定向
D.forward是服务器将控制权转交给另一个内部服务器对象,由新的对象来全权负责响应用户的请求
10、http请求中,get和post的区别?
(1)get是从服务器上获取数据,post是向服务器传送数据。 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
(2)对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
(3) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
(4)安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
11、Spring和Hibernate整合过程中各对象(BO为业务模型)注入的顺序是?(C)
A.DateSource->SessionFactory->Biz->DAO B.SessionFactory->DateSource->DAO->BO
C.DateSource->SessionFactory->DAO->BO D.SessionFactory->DateSource->Biz->DAO
12、所有通过英语六级考试的学生都参加了学校的英语俱乐部,王进参加了英语俱乐部,所以他一定通过了英语六级考试。以下哪项最好的指出了上述论证的逻辑错误?(C)
A.部分通过英语六级考试的学生没有参加英语俱乐部
B.王进参加英语俱乐部是因为他符合加入俱乐部的基本条件
C.有些参加英语俱乐部的学生还没有通过英语六级考试
D.王进曾经获得过年级英语演讲比赛第一名
13、Spring实现ioc是基于何种底层java技术?
基于java的反射机制 , 在spring初始化的时候 , 初始化所有bean , 然后在应用程序需要的时候 , 通过反射机制来获取。
14、为什么有时需要连接池?列出一个连接池的实例,举例说明使用连接池的好处。
使用连接池是为了提升操作数据库的效率,使用连接池就好比一些东西已经造好等着你来用就行了,不使用连接池就像是你在用他们之前还要先造好然后再拿去用,这比不用连接池要耗费更多的时间。
package test;
import java.sql.*;
import java.util.*;
public class DBConnpool
{
private int inUse = 0;
private Vector<Connection> connections = new Vector<Connection>();
private String poolname = "dbconnpool";
private String dbid = "jdbc:mysql://localhost:3306/teasystem";
private String drivername = "com.mysql.jdbc.Driver";
private String username = "root";
private String password = "123";
private int maxconn = 5000;
public DBConnpool(){ }
public void setdbid(String dbid)
{ this.dbid = dbid; }
public void setusername(String username)
{ this.username = username; }
public void setpassword(String password)
{ this.password = password; }
public void setmaxconn(int maxconn)
{ this.maxconn = maxconn; }
public String getdbid()
{ return dbid; }
public String getusername()
{ return username; }
public String getpassword()
{ return password; }
public int getmaxconn()
{ return maxconn; }
//将连接返还给连接池
public synchronized void reConnection(Connection conn)
{ Connection con = conn;
connections.addElement(con);
inUse--;
}
//从连接池获取一个连接
public synchronized Connection getConnection()
{
Connection con = null;
if(connections.size()>0)
{
con = (Connection)connections.elementAt(0);
connections.removeElementAt(0);
try{
if(con.isClosed())
{ con = getConnection(); }
}catch(Exception e){
e.printStackTrace();
}
}else if(maxconn == 0||inUse<maxconn)
{ con = newConnection(); }
if(con != null)
{ inUse++; }
return con;
}
private Connection newConnection()
{
Connection con = null;
try{
Class.forName(drivername);
con = DriverManager.getConnection(dbid,username,password);
}catch(Exception e){
e.printStackTrace();
return null;
}
return con;
}
public synchronized void closeConn()
{
Enumeration allConnections = connections.elements();
while(allConnections.hasMoreElements())
{
Connection con = (Connection)allConnections.nextElement();
try{
con.close();
}catch(SQLException e){
e.printStackTrace();
} } } }
使用连接池,把暂时不使用的链接放入连接池,到需要使用的时候,从连接池中取出链接使用。
15、以下给定的数组,如何最简单的把每个值都打印出来?
String[] arry=new String[]{"john","Marry","Bob"};
System.out.println(Array.toString(arry));
16、java项目中引入了一个第三方库,运行到某段代码过程中抛出NoClassDefFoundError或NoSuchMethodError,这个问题如何产生的,你如何解决这个问题?
17、有一个字符串需要判断,条件如下:必须有至少1位数字,有1位字母,10位以上。你用何种技术实现这种判断?
if(/^d+$/.test(str)) { 全为数字,执行... }当然你也可以用isNaN来判断if(isNaN(str)){ str是个数字,执行...}
18、Chrome浏览器用于调试的快捷键是什么?
F12
19、Chrome浏览器调试面板中,Elemets,Network,Resources分别是什么用途?
Elements 是页面html元素,
Network 是页面加载的时候网络资源加载情况
Resource 是网站的网页资源文件,包括css、js等
20、Eclipse中,让一个java程序看起来更易读的快捷键是什么?
Ctrl+Shift+F
21、简单说说什么是stack trace。
stack trace叫做堆栈轨迹:如果你需要打印出某个时间的调用堆栈状态,你将产生一个堆栈轨迹。
stack trace 中包括三部分,分别为:.bss .text .data
bss: 表示程序中未初始化的全局变量的一块内存区域
text: 表示程序中已初始化的全局变量的一块内存区域
data:表示存放程序执行代码的一块内存区域
- 无尘剑
-
题目在哪里呢???
BigDecimal怎么比较大小?
BigDecimal a = new BigDecimal("1.00");x0dx0aBigDecmial b = new BigDecimal(1);x0dx0a想比较一下a和b的大小,一般都会用equalsx0dx0aSystem.out.println(a.equals(b));x0dx0a但是输出结果是:falsex0dx0a原因是:BigDecimal比较时,不仅比较值,而且还比较精度?x0dx0aif(a.compareTo(b)==0) 结果是truex0dx0a比较大小可以用 a.compareTo(b) x0dx0a返回值 -1 小于 0 等于 1 大于2023-06-27 19:07:311
BigDecimal对比大小使用compare而不使用equals
在bigdecimal的对比大小中,建议使用compare而不是使用equals。按理说0和0.00应该是相等,但在上图中发现返回结果却是false。equals源码: 可以发现当小数位scale不等时,自动返回了false。 compare源码: signnum源码: compare源码可见,先对小数位scale进行了对比,如果不等,又将两个数进行了转换,转成int,对比int的大小。2023-06-27 19:07:401
bigdecimal比较大小
BigDecimal a = new BigDecimal (101.00); BigDecimal b = new BigDecimal (111.00); if(a.compareTo(b) == -1){ System.out.println("a小于b"); } if(a.compareTo(b) == 0){ System.out.println("a等于b"); } if(a.compareTo(b) == 1){ System.out.println("a大于b"); } if(a.compareTo(b) > -1){ System.out.println("a大于等于b"); } if(a.compareTo(b) < 1){ System.out.println("a小于等于b"); }2023-06-27 19:07:491
BigDecimal使用详解
一、构造方法 BigDecimal的构造方法有很多种,大家最常用的如下方式: BigDecimal bd1=new BigDecimal(10); BigDecimal bd2=new BigDecimal("10"); 二、四则预算 加法:bigDecimal1.add(bigDecimal2); 减法:bigDecimal1.subtract(bigDecimal2); 乘法:bigDecimal1.multiply(bigDecimal2); 除法:bigDecimal1.divide(bigDecimal2); 三、对小数的处理 (1).DecimalFormat类 例: DecimalFormat df =new DecimalFormat("#.00"); df.format(3.1415926); 结果输出3.14 (2)setScale方法 double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //保留2位小数 四、比较大小 BigDecimal比较大小不能使用equals因为不仅比较值还比较精度 这里使用BigDecimal自带方法compareTo 例: BigDecimal a = new BigDecimal("1.00"); BigDecmial b = new BigDecimal(1); a.compareTo(b)==0结果是true 这里返回值含义: -1小于 0等于 1大于2023-06-27 19:07:571
java中不同类型数比大小的程序代码
int 、float等基本数据类型用==string 用eques2023-06-27 19:08:073
bigdecimal可以用等号比较大小么
陆金所、人人贷还是比较靠谱的。2023-06-27 19:08:202
在JAVA中怎么比较Double类型数据的大小
几乎所有数字类型的,同类型的,可以直接比较如 a , b 两个比较类似如下:if(a>b){}不同类型,一般按照大的那个类型来比较海枫科技2023-06-27 19:08:291
39的40次方与40的39次方大小是什么?
import java.math.BigDecimal;public class Case5 {public static void main(String[] args) {test1();}public static void test1() {BigDecimal base39 = new BigDecimal(39);BigDecimal base40 = new BigDecimal(40);base39 = base39.pow(40);base40 = base40.pow(39);System.out.println("39的40次方="+base39);System.out.println("40的39次方="+base40);String result = base39.compareTo(base40)>0? "39的40次方 比 40的39次方大" : "40的39次方 比 39的40次方大";System.out.println(result);}}39的40次方=439121075102077650905178851056667333727749210354866416338812640140的39次方=30223145490365729367654400000000000000000000000000000000000000039的40次方 比 40的39次方大任何非零数的0次方都等于1。原因如下通常代表3次方5的3次方是125,即5×5×5=1255的2次方是25,即5×5=255的1次方是5,即5×1=5由此可见,n≧0时,将5的(n+1)次方变为5的n次方需除以一个5,所以可定义5的0次方为:5 ÷ 5 = 12023-06-27 19:08:541
怎么将parsefloat转换的数比较大小
js的Number精度明显达不到你的要求,不能实现 。 你应该考虑一下为什么需要转换成数字?实在没有其他途径的时候可以采用bigdecimal的工具库2023-06-27 19:09:021
Java泛型Number能比较大小吗?
理论上可以这样实现,不过我还没有测试private static int compare(Number v1 , Number v2){BigDecimal v11 = new BigDecimal(v1.toString());BigDecimal v22 = new BigDecimal(v2.toString());return v11.compareTo(v22);}2023-06-27 19:09:267
Java中Double的比较?
double a = 0.001; double b = 0.0011; BigDecimal data1 = new BigDecimal(a); BigDecimal data2 = new BigDecimal(b); data1.compareTo(data2) 非整型数,运算由于精度问题,可能会有误差,建议使用BigDecimal类型!2023-06-27 19:10:052
0
1. publicclassIntegerTypeTest01{2. publicstaticvoidmain(2023-06-27 19:10:562
java练习:自定义一个求最大值的类?
根据规则,重载是根据传入的参数不同而出现的类似于只能判断吧在这里先解决一下重载的问题,你可以试着用数据类型int和double去重载方法就是不同类型的数和不同类型的数去做比较下一步在方法中把三个数字放在数组中然后使用排序算法或者数组本身的那个排序函数,这里有冒泡排序和其他方式然后把最大值返回出去,或者在重载方法最后敲一句打印这X,Y,Z三个值中最大值是:?的话。有帮助别忘记采纳亲!2023-06-27 19:11:073
java中 List 与Set 的区别
up 看完上面的应该知道够用了2023-06-27 19:11:1714
编写一个JAVA计算器程序
你会被鄙视的 又到一年答辩论文时 不会你就拿这东西当论文吧!???2023-06-27 19:11:466
java中有类似支持C语言的MIRACL大数运算库吗,可以实现模幂运算的,大数加减乘除之类的
参考jdk中的BigInteger和BigDecinal类,它们定义了你所需要的大数运算2023-06-27 19:12:061
java 中 BigDecimal 怎么与 0 比较
把0转成BigDecimal不就可以比了吗2023-06-27 19:12:285
编写一个java程序,任意输入三个数,能按大小排列出?
int[] a = { 5, 4, 2, 4, 9, 1 }; Arrays.sort(a); // 进行排序 for (int i : a) { System.out.print(i); }2023-06-27 19:12:462
(Java)设计一个算法,计算出n阶乘中尾部零的个数
负数?x最小值都只能取到0啊2023-06-27 19:13:042
java 中BigDecimal类型的数据和int类型的常量怎么比较??
下面是我刚刚写的1和1比较的代码,自己观察一下就会了import java.math.BigDecimal;public class Main { public static void main(String args[]){ BigDecimal a; a = BigDecimal.ONE; System.out.println(a.compareTo(BigDecimal.valueOf(1))); }}2023-06-27 19:13:231
java中如何对较大的数字进行计算
不管是不是用JAVA,其实方法都一样,利用数组比如说长度为一千的数字,可以这个 int[] number = new int[1000];相加的思路是,首先两个数组的长度必须是一致,位数不同的话,前面补0,内存有点浪费,但是计算起来比较方便。然后让它们从0到最高位,每位进行相加并保存相应的位置上。最后一步是从0开始判断有没有大于10的数字,如果有就向前面进位(前一个加1,当前位减10),这样就可以。如果是相减,其实思路还是一样的,每位先相减,再判断是否有小于0的,如果有则向前面一位借1(前一位减1,当前位加10)如果是相乘,和上面一样,不过要注意的是进位的时候,不止进一位,比如5*6,就要向前进3位了(前一位加3,当前位减30)除就比较麻烦点,要涉及到精确度问题,得看实际需要 输出就更容易了,直接for循环数组 特别要注意的是,如果最高位有进位的时候,这个是比较容易出错的地方 思路在上面,如果实现不了请留言2023-06-27 19:13:341
delphi 窗体右键弹出“打印”要直接横向打印,不要跳出打印设置怎么弄,解释详细点,我是初学者
我晕,你直接在我上次的回答上追问就行拉,这些放在按钮的事件里面,比如说:procedure Tmainform.printButtonClick(Sender: TObject);begini := Printer.Printers.IndexOf("printer name"); // 代入打印机名字if i >= 0 then Printer.PrinterIndex := i; // 设定打印机Printer.Orientation := poLandscape; //设定横向打印Printer.BeginDoc; // 设定打印内容 // Set up a large blue font Canvas.Font.Size := 20; Canvas.Font.Color := clBlue; // Write out the page size Canvas.TextOut(20, 20, "Page width = "+IntToStr(PageWidth)); // Finish printingPrinter.EndDoc;end;2023-06-27 19:13:431
浮点小数的表示方法
Java 语言支持两种基本的浮点类型: float 和 double ,以及与它们对应的包装类 Float 和 Double 。它们都依据 IEEE 754 标准,该标准为 32 位浮点和 64 位双精度浮点二进制小数定义了二进制标准。 IEEE 754 用科学记数法以底数为 2 的小数来表示浮点数。IEEE 浮点数用 1 位表示数字的符号,用 8 位来表示指数,用 23 位来表示尾数,即小数部分。作为有符号整数的指数可以有正负之分。小数部分用二进制(底数 2)小数来表示,这意味着最高位对应着值 ?(2 -1),第二位对应着 ?(2 -2),依此类推。对于双精度浮点数,用 11 位表示指数,52 位表示尾数。IEEE 浮点值的格式如图 1 所示。 图 1. IEEE 754 浮点数的格式 因为用科学记数法可以有多种方式来表示给定数字,所以要规范化浮点数,以便用底数为 2 并且小数点左边为 1 的小数来表示,按照需要调节指数就可以得到所需的数字。所以,例如,数 1.25 可以表示为尾数为 1.01,指数为 0: (-1) 0*1.01 2*2 0 数 10.0 可以表示为尾数为 1.01,指数为 3: (-1) 0*1.01 2*2 3 特殊数字除了编码所允许的值的标准范围(对于 float ,从 1.4e-45 到 3.4028235e+38),还有一些表示无穷大、负无穷大、 -0 和 NaN(它代表“不是一个数字”)的特殊值。这些值的存在是为了在出现错误条件(譬如算术溢出,给负数开平方根,除以 0 等)下,可以用浮点值集合中的数字来表示所产生的结果。 这些特殊的数字有一些不寻常的特征。例如, 0 和 -0 是不同值,但在比较它们是否相等时,被认为是相等的。用一个非零数去除以无穷大的数,结果等于 0 。特殊数字 NaN 是无序的;使用 == 、 < 和 > 运算符将 NaN 与其它浮点值比较时,结果为 false 。如果 f 为 NaN,则即使 (f == f) 也会得到 false 。如果想将浮点值与 NaN 进行比较,则使用 Float.isNaN() 方法。表 1 显示了无穷大和 NaN 的一些属性。 表 1. 特殊浮点值的属性表达式 结果 Math.sqrt(-1.0) -> NaN 0.0 / 0.0 -> NaN 1.0 / 0.0 -> 无穷大 -1.0 / 0.0 -> 负无穷大 NaN + 1.0 -> NaN 无穷大 + 1.0 -> 无穷大 无穷大 + 无穷大 -> 无穷大 NaN > 1.0 -> false NaN == 1.0 -> false NaN < 1.0 -> false NaN == NaN -> false 0.0 == -0.01 -> true 基本浮点类型和包装类浮点有不同的比较行为使事情更糟的是,在基本 float 类型和包装类 Float 之间,用于比较 NaN 和 -0 的规则是不同的。对于 float 值,比较两个 NaN 值是否相等将会得到 false ,而使用 Float.equals() 来比较两个 NaN Float 对象会得到 true 。造成这种现象的原因是,如果不这样的话,就不可能将 NaN Float 对象用作 HashMap 中的键。类似的,虽然 0 和 -0 在表示为浮点值时,被认为是相等的,但使用 Float.compareTo() 来比较作为 Float 对象的 0 和 -0 时,会显示 -0 小于 0 。 浮点中的危险由于无穷大、NaN 和 0 的特殊行为,当应用浮点数时,可能看似无害的转换和优化实际上是不正确的。例如,虽然好象 0.0-f 很明显等于 -f ,但当 f 为 0 时,这是不正确的。还有其它类似的 gotcha,表 2 显示了其中一些 gotcha。 表 2. 无效的浮点假定这个表达式…… 不一定等于…… 当…… 0.0 - f -f f 为 0 f < g ! (f >= g) f 或 g 为 NaN f == f true f 为 NaN f + g - g f g 为无穷大或 NaN 舍入误差浮点运算很少是精确的。虽然一些数字(譬如 0.5 )可以精确地表示为二进制(底数 2)小数(因为 0.5 等于 2 -1),但其它一些数字(譬如 0.1 )就不能精确的表示。因此,浮点运算可能导致舍入误差,产生的结果接近 ― 但不等于 ― 您可能希望的结果。例如,下面这个简单的计算将得到 2.600000000000001 ,而不是 2.6 : double s=0; for (int i=0; i<26; i++) s += 0.1; System.out.println(s);类似的, .1*26 相乘所产生的结果不等于 .1 自身加 26 次所得到的结果。当将浮点数强制转换成整数时,产生的舍入误差甚至更严重,因为强制转换成整数类型会舍弃非整数部分,甚至对于那些“看上去似乎”应该得到整数值的计算,也存在此类问题。例如,下面这些语句: double d = 29.0 * 0.01; System.out.println(d); System.out.println((int) (d * 100));将得到以下输出:0.29 28这可能不是您起初所期望的。浮点数比较指南由于存在 NaN 的不寻常比较行为和在几乎所有浮点计算中都不可避免地会出现舍入误差,解释浮点值的比较运算符的结果比较麻烦。最好完全避免使用浮点数比较。当然,这并不总是可能的,但您应该意识到要限制浮点数比较。如果必须比较浮点数来看它们是否相等,则应该将它们差的绝对值同一些预先选定的小正数进行比较,这样您所做的就是测试它们是否“足够接近”。(如果不知道基本的计算范围,可以使用测试“abs(a/b - 1) < epsilon”,这种方法比简单地比较两者之差要更准确)。甚至测试看一个值是比零大还是比零小也存在危险 ―“以为”会生成比零略大值的计算事实上可能由于积累的舍入误差会生成略微比零小的数字。NaN 的无序性质使得在比较浮点数时更容易发生错误。当比较浮点数时,围绕无穷大和 NaN 问题,一种避免 gotcha 的经验法则是显式地测试值的有效性,而不是试图排除无效值。在清单 1 中,有两个可能的用于特性的 setter 的实现,该特性只能接受非负数值。第一个实现会接受 NaN,第二个不会。第二种形式比较好,因为它显式地检测了您认为有效的值的范围。清单 1. 需要非负浮点值的较好办法和较差办法 // Trying to test by exclusion -- this doesn"t catch NaN or infinity public void setFoo(float foo) { if (foo < 0) throw new IllegalArgumentException(Float.toString(f)); this.foo = foo; } // Testing by inclusion -- this does catch NaN public void setFoo(float foo) { if (foo >= 0 && foo < Float.INFINITY) this.foo = foo; else throw new IllegalArgumentException(Float.toString(f)); }不要用浮点值表示精确值一些非整数值(如几美元和几美分这样的小数)需要很精确。浮点数不是精确值,所以使用它们会导致舍入误差。因此,使用浮点数来试图表示象货币量这样的精确数量不是一个好的想法。使用浮点数来进行美元和美分计算会得到灾难性的后果。浮点数最好用来表示象测量值这类数值,这类值从一开始就不怎么精确。用于较小数的 BigDecimal从 JDK 1.3 起,Java 开发人员就有了另一种数值表示法来表示非整数: BigDecimal 。 BigDecimal 是标准的类,在编译器中不需要特殊支持,它可以表示任意精度的小数,并对它们进行计算。在内部,可以用任意精度任何范围的值和一个换算因子来表示 BigDecimal ,换算因子表示左移小数点多少位,从而得到所期望范围内的值。因此,用 BigDecimal 表示的数的形式为 unscaledValue*10 -scale 。 用于加、减、乘和除的方法给 BigDecimal 值提供了算术运算。由于 BigDecimal 对象是不可变的,这些方法中的每一个都会产生新的 BigDecimal 对象。因此,因为创建对象的开销, BigDecimal 不适合于大量的数学计算,但设计它的目的是用来精确地表示小数。如果您正在寻找一种能精确表示如货币量这样的数值,则 BigDecimal 可以很好地胜任该任务。 所有的 equals 方法都不能真正测试相等如浮点类型一样, BigDecimal 也有一些令人奇怪的行为。尤其在使用 equals() 方法来检测数值之间是否相等时要小心。 equals() 方法认为,两个表示同一个数但换算值不同(例如, 100.00 和 100.000 )的 BigDecimal 值是不相等的。然而, compareTo() 方法会认为这两个数是相等的,所以在从数值上比较两个 BigDecimal 值时,应该使用 compareTo() 而不是 equals() 。 另外还有一些情形,任意精度的小数运算仍不能表示精确结果。例如, 1 除以 9 会产生无限循环的小数 .111111... 。出于这个原因,在进行除法运算时, BigDecimal 可以让您显式地控制舍入。 movePointLeft() 方法支持 10 的幂次方的精确除法。 使用 BigDecimal 作为互换类型SQL-92 包括 DECIMAL 数据类型,它是用于表示定点小数的精确数字类型,它可以对小数进行基本的算术运算。一些 SQL 语言喜欢称此类型为 NUMERIC 类型,其它一些 SQL 语言则引入了 MONEY 数据类型,MONEY 数据类型被定义为小数点右侧带有两位的小数。 如果希望将数字存储到数据库中的 DECIMAL 字段,或从 DECIMAL 字段检索值,则如何确保精确地转换该数字?您可能不希望使用由 JDBC PreparedStatement 和 ResultSet 类所提供的 setFloat() 和 getFloat() 方法,因为浮点数与小数之间的转换可能会丧失精确性。相反,请使用 PreparedStatement 和 ResultSet 的 setBigDecimal() 及 getBigDecimal() 方法。 对于 BigDecimal ,有几个可用的构造函数。其中一个构造函数以双精度浮点数作为输入,另一个以整数和换算因子作为输入,还有一个以小数的 String 表示作为输入。要小心使用 BigDecimal(double) 构造函数,因为如果不了解它,会在计算过程中产生舍入误差。请使用基于整数或 String 的构造函数。 构造 BigDecimal 数对于 BigDecimal ,有几个可用的构造函数。其中一个构造函数以双精度浮点数作为输入,另一个以整数和换算因子作为输入,还有一个以小数的 String 表示作为输入。要小心使用 BigDecimal(double) 构造函数,因为如果不了解它,会在计算过程中产生舍入误差。请使用基于整数或 String 的构造函数。 如果使用 BigDecimal(double) 构造函数不恰当,在传递给 JDBC setBigDecimal() 方法时,会造成似乎很奇怪的 JDBC 驱动程序中的异常。例如,考虑以下 JDBC 代码,该代码希望将数字 0.01 存储到小数字段: PreparedStatement ps = connection.prepareStatement("INSERT INTO Foo SET name=?, value=?"); ps.setString(1, "penny"); ps.setBigDecimal(2, new BigDecimal(0.01)); ps.executeUpdate();在执行这段似乎无害的代码时会抛出一些令人迷惑不解的异常(这取决于具体的 JDBC 驱动程序),因为 0.01 的双精度近似值会导致大的换算值,这可能会使 JDBC 驱动程序或数据库感到迷惑。JDBC 驱动程序会产生异常,但可能不会说明代码实际上错在哪里,除非意识到二进制浮点数的局限性。相反,使用 BigDecimal("0.01") 或 BigDecimal(1, 2) 构造 BigDecimal 来避免这类问题,因为这两种方法都可以精确地表示小数。2023-06-27 19:13:501
java中如何实现字符与数字加减运算
JAVA中一样也的 会进行由低到高自动转换public class TestTranform { public static void main(String[] args) { char b="c"; int a=4; int d= a+b; System.out.println (d); }}2023-06-27 19:13:593
double money = 2; BigDecimal money2 = new BigDecimal("2"); 这2个声明对象有什么区别 1个带new一个不带
在java中提供了大数字的操作类,即java.math.BinInteger类和java.math.BigDecimal类。这两个类用于高精度计 算,其中BigInteger类是针对大整数的处理类,而BigDecimal类则是针对大小数的处理类。下边我们介绍BigDecimal类: BigDecimal的实现利用到了BigInteger,不同的是BigDecimal加入了小数的概念。一般的float型和Double型数据只可 以用来做科学计算或者是工程计算,由于在商业计算中,要求的数字精度比较高,所以要用到java.math.BigDecimal类,它支持任何精度的定 点数,可以用它来精确计算货币值。Double(双精度浮点型)是计算机使用的一种资料型别。比起单精度浮点数(float),Double(双精度浮点数)使用 64 位(8字节) 来储存一个浮点数。 它可以表示十进制的15或16位有效数字,负值取值范围为 -1.79769313486231570E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+3082023-06-27 19:14:061
java中什么是严格的浮点计算?请解释下,谢谢。
所有的小数都要保留。一般用BigDecimal比较好2023-06-27 19:14:143
java中怎么判断一个double类型的数等于零。
double? 直接 a ==0 判断2023-06-27 19:14:343
java.math.BigDecimal cannot be cast to java.lang.Integer说类型不能转换,求解释!
Integer不是基本类型,是int的包装类,无法把包装当做基本类型来用。比如,char a = "c"; int b = (Integer)a; 这样也是回报cannot cast错误的。必须是(int)a,用基本类型才能转。这是第一个问题。第二个问题 你的list.get(i).get("goods_amout")得到的应该是BigDecimal类型的,这个类型,不能用基本类型强转的。举个简单的例子,string a = "c"; int b = (int)a; 可以这样吗? 要转化这个,用intValue(),也就是:list.get(i).get("goods_amout").intValue() 这样得到的就是个int 的值了。2023-06-27 19:15:074
java 判断一个数值是否在一个数值区间内
if((x>100)&&(x<=200)){ system.out.println("在a区间");}else if((x>200)&&(x<=300))){ system.out.println("在b区间");}else if((x>300)&&(x<=400))){ system.out.println("在c区间");}else{ system.out.println("不符合区间");}2023-06-27 19:15:232
BigDecimal怎么比大小?
BigDecimal比大小,需要声明两个BigDecimal类型变量b1和b2,调用equals()方法比较大小。BigDecimal a = new BigDecimal("1.00");BigDecmial b = new BigDecimal(1);想比较一下a和b的大小,一般都会用equals。BigDecimal其他情况简介。使用BigDecimal类构造方法传入double类型时,计算的结果也是不精确的。因为不是所有的浮点数都能够被精确的表示成一个double 类型值,有些浮点数值不能够被精确的表示成 double 类型值,因此它会被表示成与它最接近的 double 类型的值。必须改用传入String的构造方法。这一点在BigDecimal类的构造方法注释中有说明。BigDecimal向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。如果舍弃部分左边的数字为奇数,则舍入行为与 ROUND_HALF_UP 相同。2023-06-27 19:16:031
BigDecimal比较大小怎么算的?
BigDecimal比大小,需要声明两个BigDecimal类型变量b1和b2,调用equals()方法比较大小。BigDecimal a = new BigDecimal("1.00");BigDecmial b = new BigDecimal(1);想比较一下a和b的大小,一般都会用equals。BigDecimal其他情况简介。使用BigDecimal类构造方法传入double类型时,计算的结果也是不精确的。因为不是所有的浮点数都能够被精确的表示成一个double 类型值,有些浮点数值不能够被精确的表示成 double 类型值,因此它会被表示成与它最接近的 double 类型的值。必须改用传入String的构造方法。这一点在BigDecimal类的构造方法注释中有说明。BigDecimal向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。如果舍弃部分左边的数字为奇数,则舍入行为与 ROUND_HALF_UP 相同。2023-06-27 19:16:181
BigDecimal 怎么比较大小
当然是使用compareTo:new BigDecimal(1).compareTo(new BigDecimal("1.0"))但是,注意:compareTo 其实也有坑。如果试用:new BigDecimal(1) 与new BigDecimal("1.00"),结果是true. 但是换成 new BigDecimal(1.2).compareTo(new BigDecimal("1.20")),结果就是false.这时问题又来了。所以保险的办法是把小数位去掉再比较。比如*100。都升到个位数。或者统一使用setScale定好小数位。我之前就不知这个坑,搞了好久。2023-06-27 19:17:444
bigdeal和big integer比较大小怎么比较?
BigDecimal比大小,需要声明两个BigDecimal类型变量b1和b2,调用equals()方法比较大小。BigDecimal a = new BigDecimal("1.00");BigDecmial b = new BigDecimal(1);想比较一下a和b的大小,一般都会用equals。BigDecimal其他情况简介。使用BigDecimal类构造方法传入double类型时,计算的结果也是不精确的。因为不是所有的浮点数都能够被精确的表示成一个double 类型值,有些浮点数值不能够被精确的表示成 double 类型值,因此它会被表示成与它最接近的 double 类型的值。必须改用传入String的构造方法。这一点在BigDecimal类的构造方法注释中有说明。BigDecimal向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。如果舍弃部分左边的数字为奇数,则舍入行为与 ROUND_HALF_UP 相同。2023-06-27 19:18:171
BigDecimal怎么比较大小?
BigDecimal a = new BigDecimal("1.00");BigDecmial b = new BigDecimal(1);想比较一下a和b的大小,一般都会用equalsSystem.out.println(a.equals(b));但是输出结果是:false原因是:BigDecimal比较时,不仅比较值,而且还比较精度?if(a.compareTo(b)==0) 结果是true比较大小可以用 a.compareTo(b) 返回值 -1 小于 0 等于 1 大于2023-06-27 19:18:321
c语言中double类型值的大小比较
可以这么比较啊,不会有什么异常,把上下代码贴上来看看2023-06-27 19:19:0011
java中BigDecimal怎么与0比较?
标准做法int r=big_decimal.compareTo(BigDecimal.Zero); //和0,Zero比较if(r==0) //等于if(r==1) //大于if(r==-1) //小于或者if(big_decimal.equals(BigDecimal.Zero)) //是否等于02023-06-27 19:19:331
java中BigDecimal怎么与0比较?
标准做法x0dx0aintr=big_decimal.compareTo(BigDecimal.Zero);//和0,Zero比较x0dx0aif(r==0)//等于x0dx0aif(r==1)//大于x0dx0aif(r==-1)//小于x0dx0ax0dx0a或者x0dx0aif(big_decimal.equals(BigDecimal.Zero))//是否等于02023-06-27 19:20:311
镁条在氧气中燃烧的现象是什么?
镁在空气中与氧气燃烧的反应现象为:发出耀眼白光、放出热量、生成白色粉末氧化镁,有极少量黑色固体生成;如果二氧化碳浓度足够大,还有可能看到黑色的烟,这些黑色的烟是碳的小颗粒。因为空气中除了含有氧气以外,还含有大量的氮气和一定量的二氧化碳。在燃烧得充分的情况下,镁和氧气发生氧化还原反应生成白色粉末氧化镁,产生白烟;镁和氮气反应生成淡黄色固体,同时也会产生白烟,镁和二氧化碳反应生成碳颗粒,产生黑烟。镁的应用领域常用做还原剂,去置换钛、锆、铀、铍等金属。主要用于制造轻金属合金、球墨铸铁、科学仪器和格氏试剂等。也能用于制烟火、闪光粉、镁盐、吸气器、照明弹等。结构特性类似于铝,具有轻金属的各种用途,可作为飞机、导弹的合金材料。但是镁在汽油燃点可燃,这限制了它的应用。2023-06-27 19:15:501
buy的过去式和过去分词
buy的过去式和过去分词都是bought。buy,作名词时意思是“购买,买卖;所购的物品;合算的东西”,作及物动词时意思是“购买;获得;贿赂;相信”,作不及物动词时意思是“买,采购”。 buy基本含义 v.买;购买;够支付;买通;收买;贿赂; n.合算的商品;买进(或出售)的东西;购买; [例句]He could not afford to buy a house 他买不起房子。 第三人称单数:buys 现在分词:buying 过去式:bought 过去分词:bought bought基本含义 v.买;购买;够支付;买通;收买;贿赂; buy的过去分词和过去式; [例句]I bought one of the leading brands. 我买了几个畅销品牌中的一种。 原型:buy2023-06-27 19:15:521
镁条燃烧时的现象是什么
放出热量,发出耀眼白光.生成白色粉末2023-06-27 19:16:0311
镁条燃烧实验步骤
1准备实验仪器。2镁带刚取出时是黑色的,用砂纸打磨后,去除其氧化膜,呈银白色。3用坩埚钳夹持镁带,在酒精灯上点燃,桌面上垫上石棉网,防止燃烧后生成物溅落下来烫坏桌面。4观察实验现象并记录2023-06-27 19:16:264
镁条燃烧的文字表达式
镁条在空气中燃烧的文字表达式为:镁条+氧气→氧化镁,反应条件为点燃;镁条在空气中燃烧的现象是发出耀眼白光,释放大量的热,生成一种白色固体(氧化镁)。镁在哪些气体中能燃烧:(以下反应条件均为点燃)1、镁在空气(氧气)中燃烧:2Mg+O2==2MgO;现象:产生白烟,发出耀眼的强光。2、镁在氯气中燃烧:Mg+Cl2==MgCl2;现象:产生白烟。3、镁在氮气中燃烧:3Mg+N2==Mg3N2;现象:产生灰黄色烟。4、镁在CO2中燃烧:2Mg+CO2==2MgO+C;现象:产生白烟,瓶壁上有少许黑色物质。2023-06-27 19:16:381
镁条燃烧实验需要用到的仪器
镁条燃烧实验需要用到的仪器:坩埚钳、石棉网、酒精灯。镁条也是我们实验室里,必不可少的才料,人们常常用它来做实验。镁条在空气中燃烧时,会发出耀眼的白光,在燃烧的过程中会产生烟雾,并且还会形成一节一节的白色固体。镁条的用途十分的广泛,镁条的用途,它可以用于我们的生产生活,像一些工业制作过程中的机器,还有我们生活中的汽车都需要它。也可用于我国的国防,是火箭、导弹、飞机制作过程中必不可少的原材料。镁条特点:镁是一种金属元素元素符号是Mg,标准情况下为银白色有金属光泽的固体,不溶于水、碱液,溶于酸,具有一定的延展性和热消散性,具有比较强的还原性,能与沸水反应放出氢气,在食醋中的变化为快速冒出气泡浮在醋液面上逐渐消失。镁条是地球上储备最丰富的轻金属元素之一,镁条的颜色为有光泽的银白色的固体。镁条具有很好的导电导热性能,熔点低,减震的效果好,它不溶于水。镁条进行加工时,它的加工成本很低,而且还可以回收利用。一般情况下,人们会把镁条作成镁合金,镁合金的强度要高于铝合金和钢。2023-06-27 19:16:471
buy的过去式和过去分词及用法
buy的过去式:bought,过去分词:bought。buy作名词时意思是“购买,买卖;所购的物品;合算的东西”,作及物动词时意思是“购买;获得;贿赂;相信”。 Buy 英:[bau026a];美:[bau026a] v.买;购买;够支付;买通;收买;贿赂 n.合算的商品;买进(或出售)的东西;购买 第三人称单数:buys;现在分词:buying;过去式:bought;过去分词:bought buy 的用法 用法1:buy的基本意思是用金钱换取等价物,即“购买”,是普通用词,可接具体物品如书籍、衣物等作宾语。buy也可表示“付出…以换取…”,这时可接健康、幸福、名声、忠诚等抽象名词作宾语。buy引申还可指“收买,贿赂”“相信(即买…的账)”。 用法2:buy在句中主要用作及物动词,偶尔用作不及物动词。用作及物动词时,后接名词或代词作宾语,有时还可接双宾语,其间接宾语可转化为介词for的宾语。可用于被动结构。 用法3:buy的主语一般是人,也可以是无生命的事物。 用法4:表示“在某商店买”可接介词at; 表示“从某处买”可接介词from, of, off; 表示“花多少钱买”可接介词for, at;表示“给某人买”可说buy sb sth,也可说buy sth for sb,不能说buy sth to sb。 用法5:buy是非延续性动词,不可与表示时间段的状语连用,但可与表示时间点的状语连用。2023-06-27 19:17:071
buy的过去式和用法例句
buy有购买;买;获得;收买意思,那么你知道buy的过去式是什么吗?下面我为大家带来buy的过去式和用法例句,供大家参考学习! buy的过去式及其他时态: 过去分词: bought 过去式: bought 现在分词: buying buy的用法: buy的用法1:buy的基本意思是用金钱换取等价物,即“购买”,是普通用词,可接具体物品如书籍、衣物等作宾语。buy也可表示“付出u2026以换取u2026”,这时可接健康、幸福、名声、忠诚等抽象名词作宾语。buy引申还可指“收买,贿赂”“相信(即买u2026的账)”。 buy的用法2:buy在句中主要用作及物动词,偶尔用作不及物动词。用作及物动词时,后接名词或代词作宾语,有时还可接双宾语,其间接宾语可转化为介词for的宾语。可用于被动结构。 buy的用法3:buy的主语一般是人,也可以是无生命的事物。 buy的用法4:表示“在某商店买”可接介词at; 表示“从某处买”可接介词from, of, off; 表示“花多少钱买”可接介词for, at;表示“给某人买”可说buy sb sth,也可说buy sth for sb,不能说buy sth to sb。 buy的用法5:buy是非延续性动词,不可与表示时间段的状语连用,但可与表示时间点的状语连用。 buy的用法6:buy偶尔可用于进行时,此时常具有特殊意义,如“抢购”“以分期付款的方式购买”等。 buy的过去式例句: 1. "Telmex" was bought off the government by a group of investors. 一批投资商从政府手中买下墨西哥电信公司。 2. I went to Brooks Brothers and bought myself a decent shirt. 我去布鲁克斯兄弟专卖店给自己买了一件体面的衬衫。 3. She bought Ann two bras and six pairs of knickers. 她给安买了两件胸罩、6条内裤。 4. Harry had carefully bought and wrapped presents for Mark to give them. 哈里精心购置了礼物又仔细包好,让马克交给他们。 5. He bought an investment property for $100,000 and put down $20,000. 他以10万美元买下一处投资性地产,并支付了2万美元的定金。 6. I once bought a thingummy out of one of those catalogues. 我曾经买过那些目录里的一样东西。 7. Dena bought rolls of silk that seemed ridiculously cheap. 德娜买了几卷看起来非常次的丝绸。 8. I can remember where and when I bought each one. 我记得每一件东西是在何地何时买的。 9. I bought them for a pound apiece, near enough. 我几乎是以一英镑一件的价钱买下了它们。 10. This is fearfully expensive compared with the last one I bought. 这和我上次买的相比贵得吓人。 11. He gestured at the shelves. "I"ve bought many books from him." 他指着书架说,“我已经从他那里买了不少书了”。 12. He bought me records to encourage my liking for music. 他给我买了唱片,希望培养我对音乐的兴趣。 13. She tipped the barmen 10 dollars and bought drinks all round. 她给了吧台服务员10美元小费,还请在场的所有人喝了酒。 14. That afternoon she went out and bought a new dress. 那天下午她出门买了一件新裙子。 15. She bought a travel-bag large enough to contain the film canisters. 她买了一只能装得下那些胶卷筒的旅行包。2023-06-27 19:15:401
镁条在氧气中燃烧的现象以及化学方程式
镁在氧气中燃烧方程式2Mg+Ou2082=点燃=2MgO。镁在氧气中点燃,剧烈燃烧,发出耀眼白光,有白色固体(白烟)生成。镁在空气中点燃,发出耀眼光芒(有水雾),有白色固体(白烟)生成。 镁条化学反应 1.镁条与氮气反应 3Mg+N2→Mg3N2(反应条件:点燃)镁条与氮气生成氮化镁 2.镁条与氧气反应 2Mg+O2→2MgO(反应条件:点燃或着缓慢氧化) 镁条与氧气生成氧化镁 3.镁条与二氧化碳反应 2Mg+CO2→C+2MgO(反应条件:点燃) 镁条与二氧化碳生成氧化镁和碳单质。 镁条燃烧会消耗氧气和氮气,但它也可以在二氧化碳中燃烧,是为数不多的可以在二氧化碳中燃烧的金属之一。2023-06-27 19:15:311
镁条燃烧的应用
关于镁条燃烧的应用如下:镁带一般指制备成带状的金属镁,化学符号为Mg,外观为有金属光泽的银白色固体。镁带中镁含量一般在99.96%以上,不溶于水,但能与热水反应,熔点为648℃,沸点为1107℃,可以燃烧,引燃温度在480~510℃。实验时不可用手触摸镁带(有高温);点燃时应用坩埚钳(铁钳)夹住镁带,燃烧中的镁带发出大量的光,放出大量的热。(注意:不要对着光看太久,由于镁带燃烧时很亮,可能对眼睛有一定的影响);燃烧后变成类似石灰似的纯白色粉末 燃烧后将生成物(即氧化镁)放在石棉网上观察即可。(不可直接放在桌上,以免污染桌面。)如生成淡黄色固体,则为氮化镁。镁条与氧气反应2Mg+O2→2MgO(反应条件:点燃或着缓慢氧化)镁条与氧气生成氧化镁。镁条与二氧化碳反应2Mg+CO2→C+2MgO(反应条件:点燃)镁条与二氧化碳生成氧化镁和碳单质。镁条燃烧会消耗氧气和氮气,但它也可以在二氧化碳中燃烧,是为数不多的可以在二氧化碳中燃烧的金属之一。镁条与稀盐酸反应Mg+2HCl→MgCl2+H2↑这是镁带在盐酸中的剧烈的化学反应,会产生大量的热,属于放热的化学变化.应用试管夹夹持试管以免烫伤。阳极应用用于高电阻率环境、套管内管道的保护、管道临时阴极保护、储罐及管网的保护、防强电干扰的接地栅等。镁带在摄影历史上的应用摄影师要在摄影前预先配好一定分量的闪光火药,然后在摄影时一边手动点燃,一边在巨响、闪光和白烟中按下快门。镁粉火药安全性不佳,因此调配火药时被爆炸所伤的摄影师不在少数,摄影时不慎被火药波及,须发卷曲、冒着黑烟的摄影师也成了漫画中常见的调侃题材。但是拜镁粉火药的强光所赐,黑暗中的物体在底片上也能成像,更快的快门速度使得瞬间动态能被凝固在胶片上,摄影术的应用领域被大大扩展了。随着电学的发展,新兴的能源技术给摆弄火药的摄影师们带来了一些变化。电流通过熔丝产生的热量被用于点燃镁粉火药,这种新产品被称为Flash-lamp,也就是今天的闪光灯一词来源。摄影师不用再担心被卷入火光之中,更重要的是可以通过电子线路实现闪光和拍摄的同步,大大扩展了闪光灯的使用范围。镁光灯在摄影界的王者地位结束于20世纪60年代,MIT的Harold Edgerton于1927年发明的氙气闪光管小型化并推向市场,顿时以电子万次闪光灯的名号打下江山,每用一次就要更换的闪光灯泡无论在成本还是便捷性上都没有办法与只要有电源就能使用多次的电子闪光灯相比,真正意义上的镁光灯就此退出了主流摄影。今日的智能电子闪光灯已经成为相机系统中不可或缺的一部分,功能也远远胜于它们的祖辈们。2023-06-27 19:15:031
bought过去式是什么
bought就是过去式,是buy的过去式。2023-06-27 19:14:582
buy的过去式形式
buy的过去式是bought,过去分词是bought。作及物动词时意思是购买;买;获得;收买。作不及物动词时意思是买。作名词时意思是购买;便宜货。比如:I bought him a drink in return for his help。我请他喝酒以酬谢他的帮助。 buy的用法 一.buy用作动词 1.buy的基本意思是用金钱换取等价物,即“购买”,是普通用词,可接具体物品如书籍、衣物等作宾语。buy也可表示“付出…以换取…”,这时可接健康、幸福、名声、忠诚等抽象名词作宾语。buy引申还可指“收买,贿赂”“相信(即买…的账)”。 2.buy在句中主要用作及物动词,偶尔用作不及物动词。用作及物动词时,后接名词或代词作宾语,有时还可接双宾语,其间接宾语可转化为介词for的宾语。可用于被动结构。 Money can"t buy happiness. 金钱买不来幸福。 I bought him a drink in return for his help. 我请他喝酒以酬谢他的帮助。 3.用作不及物动词 (vi.) A lot of people just come into the shop without buying. 有很多人进店但却不购物。 二.buy用作名词 buy作名词时的意思有二:一是“买卖”,指用于商品交换间的交易; 二是“便宜货”,指价格上略低的货物。 It"s a good buy at that price. 这是一笔价钱合算的买卖。 That shirt was a really great buy.2023-06-27 19:14:481
镁条在氧气中燃烧的化学方程式?
2 Mg + O_2 u27f6 2 MgO2023-06-27 19:14:486