匿名内部类可以访问private_关于接口、内部类、常量池、二维数组、Arrays的equals方法的部分知识点总结...

接口:interface

定义的接口必须由public修饰,可以实现多继承,会获得父接口中所定义的一切。接口中定义的变量只会是常量(public static final 修饰),没写public static final会默认加上。且接口中的方法也是public abstract类型的。不写也是默认该类型。注意:接口不是类,没有构造方法!

JDK1.7之前,接口中只能包含静态常量、抽象方法,不能有普通属性、构造方法、普通方法。

JDK1.8后,接口中包含普通的静态方法 implements

内部类:

1. 内部类可以直接访问外部的私有属性。但是破坏了类的结构。

2. 内部类可以使用public、default、protected 、private以及static修饰。

3. 是一个编译时概念,一旦编译完成就是两个独立的类,且内部类的成员变量/方法名可以和外部类相同。

4. 由于编译后会生成两个对应的字节码文件(Outer.class和Outer$Inner.class两个类的字节码文件(故可以通过$判断是否是内部类)在项目左边专门存放字节码文件的地方查看)。

5. 由于内部类提供了更好的封装特性,并且可以很方便的访问外部类的属性。所以,在只为外部类提供服务的情况下可以优先考虑使用内部类。

6. 可分为

1)成员内部类: 相当于外部类的成员

2)静态内部类:(1)不允许访问外部类的非static属性

(2)若内部类中的方法是静态的,则内部内必须为静态的---创建内部类对象:外部类类名.内部类类名 Outer.Inner i=new Outer.Inner();)

e83489e1d3821d1e16a9f8111c186e8c.png

3)方法中的内部类:只能在方法中使用,相当于方法中的局部变量。

3b2ba6109bbde4e0596772398f826f23.png

4)匿名内部类:(前提:存在继承或实现关系)

ddc152a30f2ab3b3c6ef0f85e97d05b9.png

常量池:

bd9b589c1c864060b41a051bf0fe2d6f.png

会在堆内开空间:两种情况:1)有变量参与运算 2)new 关键字

字符串相等的判断:

引用数据类型有两种相等的判断:

==:比较两字符串地址是否相等 equals(obj):比较两字符串内容是否相等

二维数组的实始化:

1) int intA[][]={{1,2},{2,3},{3,4,5}};

2) int [][] intB=new int[3][5];

3) int []intC []=new int[3][];

intC[0]=new int[2];

intC[1]=new int[3];

intC[2]=new int[5];

二维数组的遍历:

d5a3e769592e393803f6bcedfcbf5c74.png

Java.util.Arrays

ae54810d3102d09b01ead0cca468ef1b.png

Array.equals(数组a,数组b)使用的是Arrays里面的equals方法。比较的是两数组的顺序和值是否一致

数组a.equals(数组b),执行的是Object里面的equals方法,比较的是地址值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 Java 代码实现上述功能: /* register.jsp */ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Register Page</title> </head> <body> <h1>Register Page</h1> <form method="post" action="register.do"> Username: <input type="text" name="username" required><br> Password: <input type="password" name="password" required><br> Confirm Password: <input type="password" name="confirm_password" required><br> Gender: <input type="radio" name="gender" value="male" checked>Male <input type="radio" name="gender" value="female">Female<br> Hobbies: <input type="checkbox" name="hobbies" value="reading">Reading <input type="checkbox" name="hobbies" value="writing">Writing <input type="checkbox" name="hobbies" value="swimming">Swimming <input type="checkbox" name="hobbies" value="traveling">Traveling<br> <input type="submit" value="Register"> </form> </body> </html> /* register.do */ import java.io.IOException; import java.util.Arrays; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/register.do") public class RegisterServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); String confirm_password = request.getParameter("confirm_password"); String gender = request.getParameter("gender"); String[] hobbies_array = request.getParameterValues("hobbies"); String hobbies = ""; if (hobbies_array != null) { hobbies = Arrays.toString(hobbies_array); hobbies = hobbies.substring(1, hobbies.length() - 1).replace(",", " or "); } if (!password.equals(confirm_password)) { response.sendRedirect("register.jsp"); return; } request.setAttribute("username", username); request.setAttribute("gender", gender); request.setAttribute("hobbies", hobbies); request.getRequestDispatcher("showinfo.jsp").forward(request, response); } } /* showinfo.jsp */ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>User Information</title> </head> <body> <h1>User Information</h1> <table border="1"> <tr> <td>Username:</td> <td><%= request.getAttribute("username") %></td> </tr> <tr> <td>Gender:</td> <td><%= request.getAttribute("gender") %></td> </tr> <tr> <td>Hobbies:</td> <td><%= request.getAttribute("hobbies") %></td> </tr> </table> </body> </html> 当用户填写完 register.jsp 页面并点击注册按钮后,会提交到 register.do Servlet,判断两次密码是否一致,如果不一致则重定向回 register.jsp 页面,否则将注册信息存入 request 对象,传递给 showinfo.jsp 页面,并以表格形式展示注册信息。注意:本代码仅供参考,需在实际应用根据具体情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值