网站上的学习——Java基础的复盘

  1. 属于SVN中控制鉴权用户访问版本库的权限的默认权限是:write
    auth-access的取值范围是:write read none,write表示可读可写,read只读,none无访问权限。默认是write
  2. JSP如何新增cookies:addCookie()命令
  3. JSP引入header.jsp页面
    %@include file="header.jsp"%>
  4. JSP的sendRedirect()方法的作用
    response和request一样都是jsp内置对象,request是获取用户的请求,response处理用户请求。sendRedirect()函数的作用是重定向网页,向浏览器发送一个特殊的Header,然后由浏览器来做重定向,转到指定的页面。(在客户端重定向客户请求)
  5. Mvn clean package的作用
    clean清理上一次产生的文件。
    package打包构件,生成对应的jar和war
  6. svn的使用操作流程
  7. view视图的作用
  8. Math.round(-15.61)的执行输出结果是
  9. MyBatis如何配置类型简称别名
  10. @Autowired的作用
  11. <jsp:include>的作用
  12. Spring是什么
  13. Spring框架用到的设计模式
    自测题1
    自测题2

基础知识查漏

对象的内存分配
  1. 在堆空间中保存的是真正的数据。保存的是对象的属性信息。
  2. 在栈空间中保存的是堆空间的地址。
private实现封装
  1. 类中的方法和属性都可以使用private修饰
  2. 但是一般方法比较少用private修饰
  3. 类的设计原则之一:类中的属性最好用private来修饰,若这些属性外部需要使用,则定义setter和getter方法
总结写程序时的一些规范
  1. 类名要有意义。
  2. 类中的属性用private修饰,所以在类中最好按照要求有相应的setter和getter方法。
  3. 类中可以有若干个构造方法,并且必须保留一个无参数的构造方法。
  4. 类中的所有方法都不要出现System.out语句,输出语句必须交给调用处实现。
  5. 类中最好包含一个返回类完整信息的方法,可以取名getInfo()
字符串
  1. 字符串采用构造方法会开辟新的空间,new String(),new String(“hello”),由于字符串“hello”都是匿名对象,所以一定会在堆内存中开辟区域,然后这条语句通过构造方法new,又会在堆内存中开辟新的区域,而且也会对字符串的共享产生影响,是因为通过构造方法产生的字符串不会进入共享的对象池,如果要进入,可以使用intern()方法,即new String(“hello”).intern()。因为另一种字符串的构造方法:直接赋值,String s="hello"是利用了对象池,不同的引用指向的是同一个地址,不会开辟新空间。
  2. 字符串中的trim()是去掉字符串两边界上的空格,中间的空格会保留下来。
this
  1. this(),用this()代替无参构造方法(也可以括号内传入参数表示有参构造方法)必须把该语句放在构造方法的首行。
继承
  1. 子类会继承父类的所有属性和方法,但是只能使用使用那些用public修饰的。那些private修饰的仅仅被隐式继承。那些private的方法只能被父类使用,子类不能重写,也不能使用。
  2. super是子类访问父类的。super.方法()
  3. 方法的多态性:方法的重载和重写。对象的多态性,涉及到方法重写。
  4. 开发时最好不要去继承已经实现好的类,而要去继承抽象类。抽象类在普通类基础上扩充了抽象方法。抽象方法只声明,没有实现,没有方法体。抽象方法和抽象类abstract修饰。
修饰词
  1. 为了避免麻烦,大部分方法都用public修饰,大部分属性都用private修饰。
  2. 使用final定义的类不能有子类。final修饰的方法不能被覆写。
  3. 常量的标识符全部大写。
  4. instanceof返回布尔型。
  5. 四种访问控制权限,private、default、protected、public。相同包中的不同类,private修饰的就不能访问了。不同包的子类,default修饰的就不能访问了,不同包的非子类,protected修饰的就不能访问了。
  6. 对于封装来说,只有三种控制权限,是private、default、protected。
  7. 选择控制权限的规则,第一条,对于封装来说,大多数时候用private,少部分时候用protected,几乎不用default。第二条,若不是对于封装,则属性都用private,方法都用public。Java的封装就是指的private、default、protected三者的使用。
多态性
  1. 对象的多态性,涉及到方法重写。
  2. 对象的向上转型是自动的,例如int和long型相加得到long型。而向下转型是需要强制转换的。
  3. 对象多态性实现的核心在于方法的重写。对象自动向上转型可以实现接收参数的统一。没有关系的类对象是无法发生转型的,会出现ClassCastException,尽量不用向下转型。
抽象类
  1. 所有的抽象类必须要有子类。抽象类的子类如果不是抽象类必须重写抽象类中的所有抽象方法。抽象方法可以是任意权限,但是最好是public。
  2. 抽象类不能直接实例化,抽象类中允许没有抽象方法。抽象类必须有子类,而final类不允许有子类,所以抽象类不能final修饰。抽象方法不能用private,因为抽象方法必须被重写。
  3. 外部抽象类不能用static,内部抽象类可以用static。
  4. 如果命名抽象类时类名可以在前面写上前缀Abstract,表示该类是抽象类。
接口
  1. 接口是抽象方法和全局常量的集合。
  2. 为了区别类和接口的命名,由于两者的命名规则一样,所以最好接口命名时在前面加上大写字母I,这是因为接口英文Interface
  3. 可以实现多个接口。接口中不管是属性还是方法都用public
  4. 接口中一般都是抽象方法,存在全局常量的可能性小。接口里抽象方法abstract可以省略,但是public要写。
  5. 当子类需要实现接口又需要继承抽象类时,先继承抽象类,再实现接口。
  6. 只有接口中的方法的修饰词abstract可省略,其他情况不能省略。
  7. 接口不能使用extends继承抽象类,但是可以用extends继承多个接口。
  8. 接口可以定义一系列内部结构,用static修饰的内部接口相当于外部接口。
  9. Java实现可移植性的关键是JVM,程序通过JVM再到操作系统。
  10. new是开发过程中最大的耦合元凶。解耦合的关键在于引入第三方。故可以用工厂模式来设计。
  11. 以后写接口要想取得实例化,用工厂模式。
  12. 代理模式就是两个子类共同实现同一个接口,一个子类即真实实现,用来实现核心操作,另一个子类即代理实现,用于辅助实现。代理实现的子类要调用真实实现的子类。
  13. 代理模式的核心在于每个核心操作都会有与之辅助的功能类共同完成。
  14. 接口与抽象类的区别:第一点,接口只含有抽象方法、全局常量。抽象类含有抽象方法、具体方法、全局常量、全局变量、属性、构造方法。第二点:接口只能用public实现,抽象类可以使用各种权限修饰词。
  15. 设计时优先考虑接口,避免单继承局限。
匿名类
  1. 一般使用匿名类都是在接口或者抽象类中。匿名内部类的写法一般是
    new clsssName{…}
  2. 一个普通类尽量不要再有子类继承,一般是子类继承抽象类或者接口,所以尽管普通类可以有匿名内部类的形式来定义子类,但是由开发逻辑要避免这种行为。
  1. Object类是所有对象的父类,Object类的toString()方法是获得对象的地址,如果要取得其他内容,就要重写Object类的toString()方法。
  2. 任何对象遇到字符串都会变成String类。
  3. 包装类分为两类,第一类是Object直接子类即对象型,有Boolean和Character。第二类是数值型即Number直接子类,有Byte、Integer、Short、Long、Double(共有六类)。从JDK1.5后,有自动装箱和拆箱。
  4. 包装类比较使用equal方法,而不用==。
  5. 接收数据时使用int,储存数据时使用Integer。
  6. 编写简单Java类时使用Integer,不要用基本数据类型例如int。因为这涉及到0和null的区别。
  7. 把String变为Double用parseDouble()方法。把String变为Integer用parseInteger()方法。把String变为Boolean用parseBoolean()方法。Boolean.parseBoolean()Integer.parseInteger()
  8. 把其他类型转化为字符串时,与""进行拼接,但是这种方法会产生垃圾,占用空间。可以用另一种方法,使用valueOf()方法。valueOf()方法用于返回给定参数的原生 Number 对象值,参数可以是原生数据类型, String等。该方法是静态方法。用法如下:Integer valueOf(int i):返回一个表示指定的 int 值的 Integer 实例。以及Integer valueOf(String s):返回保存指定的 String 的值的 Integer 对象。valueOf()方法出于减少对象创建次数以及节省内存的考虑,会对数值在-128~127之间的Integer对象缓存,如果方法传入的参数在这个缓存范围内,那么就会直接返回缓存中的对象。这种方法虽然不会产生垃圾。但是在开发中字符串的类型转化最常用的方法还是下面这三种,也是上面提到了的。即parseInt()把字符串转int。parseString()把String转double。parseBoolean()把String转boolean。
  9. public class与class的区别。若是public class,则文件名必须与类名相同,如果该类需要被其他包访问到,则要定义为public class。而不用public修饰的class,Java文件名与该类名不一致,并且在Java文件中可以定义多个不用public修饰的class,这个类不许被其他包访问。
  10. 如果在Java文件中有很多类,那么怎样判断这些类的顺序,可以用的打包编译命令是java –d.*.java,该命令可以自动实现判断好这些类的顺序。
  11. jar也是压缩文件,里面保存*.class文件。开发中会用到大量jar文件,需要在CLASSPATH处配置。而且开发时使用的第三方开发包也要在CLASSPATH处配置。
单例模式
  1. 单例模式的应用,操作系统上的回收站,每个磁盘上都有回收站区域,但是操作系统上的回收站是唯一的。
  2. 单例模式的两种形式,懒汉式和恶汉式。饿汉式就是不管需不需要使用实例对象,只要类加载了,就会自动创建好一个公共的实例对象。对于饿汉式,会把创建的实例对象用final修饰。
    private final static Singleton INSTANCE=new Singleton()
    特点,构造方法私有化,外部无法产生新的实例对象,只能通过static方法来创建,static方法就可以保证外部无论调用多少次,都是唯一的实例对象。
  3. 第二种,懒汉式。只有当第一次使用类对象的时候才会去创建。懒汉式的创建方式对于创建的实例对象就不用final去修饰。在static创建方法中需要增添if判断,if (instance==null)只有当满足if条件的时候,才会去创建,instance=new Singleton()。注意懒汉式这里这段代码有严重的性能问题。
多例模式
  1. 多例设计,例如,一周七天只会有七个对象,描述性别只会有两个对象。单例模式和多例模式的共同特点,第一个,构造方法是私有的。第二个,类的内部都会通过static方法来取得类的实例化对象。
异常
  1. 异常处理。第一种,e.printStackTrace()可以输出完整的异常信息。不管是否产生异常,finally作为统一出口。一个try可以带多个catch。
  2. 若发现异常后并不打算处理,那么可以用throws来抛出异常。
  3. throw是编写在语句中的,表示人为的进行异常的抛出,而不是由JVM负责异常的抛出,异常类实例化对象的产生。
  4. throw和break continue return一样都需要结合if判断来使用。
  5. throw和throws的区别,throw用于方法内部主要表示进行手工的异常抛出。throws主要在方法声明上使用,明确告诉用户本方法可能产生的异常,同时可能本方法不会处理此异常。
  6. 不管异常会不会发生,都会执行finally。
  7. try捕获异常,catch处理异常。
  8. Exception和RuntimeException的区别,Exception是RuntimeException的父类,使用Exception定义的异常必须要求异常处理。RuntimeException可以由用户选择性地进行异常处理。
  9. 常见的RuntimeException有空指针异常,算数异常,ClassCastException等。
断言
  1. 断言,assert,断言的概念是,当程序执行到某些语句之后,其数据的内容一定是约定的内容。断言语句不是程序,是一种推断。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值