现在后端想找个好岗位真心有点压力,这样的面试题,让我怎么作答?直接放弃!!!~~~,回来想了想,查了查,我开发所用到的类库及工具类,还真不少,但是一个也没记住,此刻,痛哭不已!
现在如果让我写,我准备好了?随手撸几个吧。
- java.lang 包:提供了 Java 语言的基本类型、基本操作和基本对象,包括 String、Integer、Boolean 等类。示例:
String str = "Hello World";
Integer integerObj = new Integer(123);
boolean bool = true;
- java.util 包:提供了各种实用工具类,包括集合框架、时间日期处理、随机数生成等等。示例:
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
Date date = new Date();
Random random = new Random();
System.out.println(random.nextInt(100));
- java.io 包:提供了文件输入输出和处理相关的类,包括文件读写、流处理等。示例:
File file = new File("abc.txt");
file.createNewFile();
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[1024];
fis.read(buffer);
fis.close();
- java.net 包:提供了网络编程相关的类和接口,包括 Socket、ServerSocket 等。示例:
Socket socket = new Socket("www.baidu.com", 80);
OutputStream os = socket.getOutputStream();
os.write("GET / HTTP/1.1\r\n\r\n".getBytes());
os.flush();
socket.close();
- java.awt 和 javax.swing 包:提供了图形用户界面(GUI)编程相关的类和接口。示例:
JFrame frame = new JFrame("My Frame");
frame.setSize(600, 400);
frame.setVisible(true);
- java.math 包:提供了高精度数学运算相关的类和接口,包括 BigInteger、BigDecimal 等。示例:
BigInteger bigInt1 = new BigInteger("12345678901234567890");
BigInteger bigInt2 = new BigInteger("98765432109876543210");
System.out.println(bigInt1.add(bigInt2));
- java.nio 包:提供了非阻塞 I/O 操作相关的类和接口,可以提高网络通信的效率。示例:
SocketChannel channel = SocketChannel.open(new InetSocketAddress("www.baidu.com", 80));
channel.configureBlocking(false);
ByteBuffer buffer = ByteBuffer.allocate(1024);
int len = channel.read(buffer);
channel.close();
- java.sql 包:提供了 JDBC(Java 数据库连接)相关的类和接口,可以访问和操作数据库。示例:
// 连接数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false", "root", "password");
// 执行查询
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM user");
// 处理结果集
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
}
// 关闭资源
rs.close();
stmt.close();
conn.close();
- java.util.concurrent 包:提供了并发编程相关的类和接口,包括线程池、锁、并发集合等。示例:
// 创建一个线程池
ExecutorService executor = Executors.newFixedThreadPool(10);
// 提交任务
Future<Integer> future = executor.submit(() -> {
Thread.sleep(1000);
return 1 + 2;
});
// 获取任务执行结果
int result = future.get();
// 关闭线程池
executor.shutdown();
- java.util.regex 包:提供了正则表达式相关的类和接口,可以进行文本匹配和替换。示例:
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher("a1b2c3");
while (matcher.find()) {
System.out.println(matcher.group());
}
- java.text 包:提供了文本格式化相关的类和接口,可以进行数字、日期等的格式化。示例:
NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);
System.out.println(nf.format(1234.56));
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(new Date()));
- java.util.logging 包:提供了日志记录相关的类和接口,可以进行日志记录和管理。示例:
Logger logger = Logger.getLogger("MyLogger");
logger.setLevel(Level.INFO);
FileHandler fh = new FileHandler("mylog.log");
fh.setFormatter(new SimpleFormatter());
logger.addHandler(fh);
logger.info("Hello World!");
- java.beans 包:提供了 JavaBean 相关的类和接口,可以进行对象属性的获取和设置。示例:
public class Person {
private String name;
private int age;
// getter 和 setter 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Person person = new Person();
BeanInfo beanInfo = Introspector.getBeanInfo(Person.class);
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor pd : propertyDescriptors) {
if (pd.getPropertyType() == String.class) {
pd.getWriteMethod().invoke(person, "张三");
} else if (pd.getPropertyType() == int.class) {
pd.getWriteMethod().invoke(person, 18);
}
}
- java.security 包:提供了安全相关的类和接口,包括加密、解密、数字签名等。示例:
// 加密数据
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec keySpec = new SecretKeySpec("1234567890123456".getBytes(), "AES");
IvParameterSpec ivSpec = new IvParameterSpec("1234567890123456".getBytes());
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
byte[] encryptedData = cipher.doFinal("Hello World".getBytes());
// 解密数据
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
byte[] decryptedData = cipher.doFinal(encryptedData);
String str = new String(decryptedData);
- java.time 包:提供了日期时间相关的类和接口,可以进行日期时间的操作和计算。示例:
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
System.out.println(date.toString());
System.out.println(time.toString());
- java.util.zip 包:提供了压缩和解压相关的类和接口,包括 ZipFile、ZipEntry 等。示例:
// 压缩文件
FileOutputStream fos = new FileOutputStream("test.zip");
ZipOutputStream zos = new ZipOutputStream(fos);
zos.putNextEntry(new ZipEntry("abc.txt"));
byte[] data = "Hello World".getBytes();
zos.write(data, 0, data.length);
zos.closeEntry();
zos.close();
fos.close();
// 解压文件
ZipInputStream zis = new ZipInputStream(new FileInputStream("test.zip"));
ZipEntry entry = null;
while ((entry = zis.getNextEntry()) != null) {
String name = entry.getName();
System.out.println(name);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
while ((len = zis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
byte[] data = bos.toByteArray();
bos.close();
}
zis.close();
- java.rmi 包:提供了远程方法调用(RMI)相关的类和接口,可以进行 Java 程序之间的远程通信。示例:
public interface HelloService extends Remote {
String sayHello(String name) throws RemoteException;
}
public class HelloServiceImpl implements HelloService {
public String sayHello(String name) throws RemoteException {
return "Hello, " + name + "!";
}
}
// 注册服务
LocateRegistry.createRegistry(1099);
Naming.rebind("rmi://localhost/hello", new HelloServiceImpl());
// 调用服务
HelloService helloService = (HelloService) Naming.lookup("rmi://localhost/hello");
String result = helloService.sayHello("张三");
System.out.println(result);
- java.awt.image 和 javax.imageio 包:提供了图像处理相关的类和接口,可以进行图像的处理和操作。示例:
// 读取图片
BufferedImage image = ImageIO.read(new File("test.jpg"));
// 缩放图片
AffineTransform transform = AffineTransform.getScaleInstance(0.5, 0.5);
AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BILINEAR);
BufferedImage scaledImage = op.filter(image, null);
// 写入图片
ImageIO.write(scaledImage, "jpg", new File("test_scaled.jpg"));
- javax.xml.bind 包:提供了 XML 数据绑定相关的类和接口,可以将 XML 数据和 Java 对象进行绑定。示例:
@XmlRootElement(name = "person")
public class Person {
@XmlElement(name = "name")
private String name;
@XmlElement(name = "age")
private int age;
// getter 和 setter 方法
}
// 解析 XML 数据
JAXBContext context = JAXBContext.newInstance(Person.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Person person = (Person) unmarshaller.unmarshal(new File("person.xml"));
// 生成 XML 数据
JAXBContext context = JAXBContext.newInstance(Person.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(person, new File("person.xml"));
- javax.servlet 包:提供了 Servlet 相关的类和接口,可以进行 Web 应用程序的开发。示例:
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>Hello, World!</h1>");
out.println("</body></html>");
}
}
// 部署 Web 应用程序
Tomcat tomcat = new Tomcat();
Context context = tomcat.addContext("", new File(".").getAbsolutePath());
Tomcat.addServlet(context, "hello", new HelloServlet());
context.addServletMappingDecoded("/hello", "hello");
tomcat.start();
tomcat.getServer().await();