这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战
今天继续~
InetAddress类的方法
- 这个类表示互联网ip地址
getByAddress(byte[] addr)
- 返回InetAddress对象
getByAddress(String host,byte[] addr)
- 根据提供的主机名和IP地址创建InetAddress
getByName(String host)
- 在给定主机名的情况下确定主机的 IP 地址
getHostAddress()
- 返回IP地址字符串
getHostName()
- 获取此 IP 地址的主机名
getLocalHost()
- 返回本地主机
toString()
- 转换为字符串
java发送邮件
- 想要完成此操作需下载两个额外的包,分别是
JavaMail API
和Java Activation Framework
发送一封简单的E-mail
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendEmail{
public static void main(String[] args){
String to = "111@qq.com";
String from = "222@qq.com";
String host = "localhost";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host",host);
Session session = Session.getDefaultInstance(properties);
try{
MimeMessage message = new MimeMessage(session);
message.setFrom(new MimeMessage(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("This is Subject");
message.setText("This is actual message");
Transport.send(message);
}catch(MessagingException mex){
mex.printStackTrace();
}
}
}
ps:简单来说就是设置发送邮箱所需要的所有信息,把他们全部放在message里,最后通过send方法去把它们发送出去
发送一封带有HTML的E-mail
- 与上面的代码几乎一样,只不过在往message里加东西的时候多加一项:
message.setContent("<h1>this is html</h1>")
发送带有附件的html
- 与最上面的代码几乎一样,只不过会加上附件的语句:
messageBodyPart = new MimeBodyPart();
String filename = "file.txt";
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
Transport.send(message);
java 多线程编程
- 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销
- 多线程可以满足程序员编写高效率的程序来达到充分利用cpu的目的
线程的生命周期
新建状态
- 使用new关键字和Thread类建立一个线程后,该线程对象处于新建状态,会一直持续到
start()
的执行
就绪状态
- 当线程对象调用了
start()
后,线程就进入了就绪状态
运行状态
- 当就绪状态的线程获取了cpu资源,就可以执行
run()
,此时线程就进入了运行状态,它可能会变成阻塞状态、就绪状态和死亡状态
阻塞状态
- 当线程执行了
sleep
、suspend
等方法失去占用资源后,该线程就会由运行状态进入阻塞状态,睡眠时间结束或者获得资源都可以重新进入就绪状态,分为三种: - 等待阻塞:运行状态下执行
wait()
使线程进入等待阻塞状态 - 同步阻塞:线程获取synchronized同步锁失败
- 其他阻塞:调用
sleep
或join
发出I/O请求时线程会进入阻塞状态,当两者终止时线程恢复就绪状态
死亡状态
- 线程完成任务或终止后,该线程就会切换到死亡状态(结束)