我有以下代码:
Socket clientSocket = null;
try {
clientSocket = serverSocket.accept();
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
Run Code Online (Sandbox Code Playgroud)
代码取自java.sun.com.
关于上面给出的短代码,我有几个问题.
为什么我们要捕获IOException.我虽然IOException是在我们使用输入输出方法(而不是网络方法)时可能发生的事情.
"System.err.println"和"System.println"有什么区别?
在catch语句中,我们有"e".做什么的?我们后者使用它吗?
我有一个对象,这是一个新的MimeMessage调用消息,我想知道它传递给我的外发邮件服务器.然而,我不知道如何在Java中获得这样的变量.这是一些代码:
private String sendConfirmationEmail (String to, String from, String subject, String body, boolean CCSender) {
try
{
// String smtpHost = Properties.smtp;
String smtpHost = Properties.smtp;
String fromAddress = from;
String toAddress = to;
Properties properties = System.getProperties();
properties.put("mail.smtp.host", smtpHost);
Session session = Session.getInstance(properties, null);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(fromAddress));
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(toAddress));
if (CCSender) {
message.setRecipient(Message.RecipientType.CC,
new InternetAddress(from));
}
message.setSubject(subject);
message.setText(body);
System.out.println(message); <=== I want this to work!
message.saveChanges();
Transport.send(message);
return "1:success";
}
catch(Exception e)
{
return …Run Code Online (Sandbox Code Playgroud) 我是Java的新手,正在使用简单的打印.首先,我执行了:
System.out.println(1 + 2 + "3");
Run Code Online (Sandbox Code Playgroud)
输出:33
我编写了逻辑,将添加1和2,并按原样打印3.
然后,我尝试了这个:
System.out.println ("1" + 2 + 3);
Run Code Online (Sandbox Code Playgroud)
输出:123
应用这个逻辑我得到答案15,无法找出正确的答案,所以我需要你的帮助,所以朋友们.
可能重复:
如何创建一个带有"字符"的字符串?(Java)
我在java中打印这样的字符串时遇到问题我该System.out.println("this is a "test"");如何解决这个问题?
如何打印b的内容而不是其内存地址?
public class Testing {
public static void main (String [] args){
String a = "A#b#C ";
String[] b = a.split("#");
System.out.println(b);
}
}
Run Code Online (Sandbox Code Playgroud) 这是android.util.Log源代码.
在最底层(第340行),方法中包括:
public static native int println_native(int bufID,
int priority, String tag, String msg);
Run Code Online (Sandbox Code Playgroud)
我想println_native()或多或少喜欢它println(),只是有int bufID不同的.
但即使我得到了代码println_native(),我仍然缺乏com.android.internal.os.RuntimeInit(第19行import),以模拟android.util.Log旧的Android版本.
如果您在Playgroud中运行以下内容
class Test {
var description:String {
return "This is Test"
}
}
class Test1:NSObject {
override var description:String {
return "This is Test"
}
}
let t = Test()
println(t)
let t1 = Test1()
println(t1)
Run Code Online (Sandbox Code Playgroud)
你看到第一个println会输出一些调试器模糊,而第二个会输出内容description.
所以:是有办法,"正常"类将被视为相同的方式的子类NSObject,以便println将尊重的内容description属性?
我创建了一个命令行工具,该工具执行一些较长的操作,并且我想通过打印语句来通知用户,例如:
"10% Done"
"20% Done"
Run Code Online (Sandbox Code Playgroud)
完成多少百分比的手术。如果我使用println,则每个进度都将打印到新行中(显然),但是有一种快速的方法,我可以用新的文本替换最后打印的文本,因此在控制台上,您只能读取实际百分比,不是实际的和之前打印的?
假设我有以下代码:
double median = med(10.0, 12.0, 3.0); //method returns middle number as double
Run Code Online (Sandbox Code Playgroud)
现在,我想写一条信息说明中位数。可以使用println()完成此操作,如下所示:
System.out.println("Your number was " + median);
Run Code Online (Sandbox Code Playgroud)
还是我必须将printf()与双精度值一起使用?
我问的原因是因为我已经在线上看到了这两种做法1,但是当我尝试使用println()时,会出现错误,除非我写下:
System.out.println(median);
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用println()打印出双精度值和字符串,还是必须为此使用printf()?
我已经使用了很多System.out.println()来进行调试,我知道这不是一个好主意.现在我想删除所有的print语句,而不是手动完成.
使用Android Studio真的有任何快捷方式或技巧吗?