Java_杂记_2

1、Math.cos计算弧度的余弦值;Math.toRadians将角度转换为弧度;Math.floor(x)返回小于等于x的最接近整数,返回类型为double


2、public boolean equals(Object obj){ return (this==obj);} Object中的equals,没有重写equals,直接使用==,而String中重写了equals。


3、Integer重写了equals方法,比较的是值。“==”默认比较的是对象或者变量所存储的地址,equals方法则可以在继承的类里重写,包装类中的equals实际比较的是所存储的变量值,而对象直接使用“==”比较的是地址。


4、CopyOnWriteArrayList适用于写多读少的并发场景;ReadWriteLock即读写锁,它要求写与读之间互斥,读与写之间互斥,读与读之间可以并发执行。在读多写少的情况下可以提高效率;ConcurrentHashMap是同步的HashMap,读写都加锁;volatile只保证多线程操作的可见性,不保证原子性,用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最新的值。volatile很容易被误用,用来进行原子性操作。


5、局部变量必须有初始值。


6、java.long 提供利用Java编程语言进行程序设计的基础类;java.sql 提供使用Java编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的API;java.util 包含collection框架、遗留的collection类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。


7、Java支持的语言类型分为:基本类型和引用类型。基本类型包括boolean类型和数值类型,数值类型分为整形和浮点型,整形包括:byte、short、int、long、char,浮点类型包括float和double。引用类型包括类、接口和数组。


8、一般对应数据模型和对象数据模型之间有一下对应关系:表对应类、记录对应对象、表的字段对应类的属性。


9、面向对象的五大原则:单一职责原则(SRP)、开放封闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)


10、垃圾回收在JVM中优先级相当相当低;垃圾收集器(GC)程序开发者只能推荐JVM进行回收,但何时回收,回收哪些,程序员不能控制;垃圾回收机制只是回收不再使用的JVM内存,如果程序有严重BUG,照样内存溢出;进入DEAD的线程,它还可以恢复,GC不会回收。


11、Java concurrent包中:Semaphore类,控制某个资源可被同时访问的个数;Future类,是一个接口,表示异步计算的结果;ReentrantLock类,具有与使用synchronized方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大;CountDownLatch类,可以用来在一个线程中等待多个线程完成任务的类。


12、ArrayList的实现不是线程同步的。


13、依赖注入是一种思想,或者说是一种设计模式,在Java中是通过反射机制实现的,与具体框架无关;Spring依赖注入(DI)的三种方式,分别为:接口注入、Setter方法注入、构造方法注入


14、通过ServletConfig接口getInitParameter(java.lang.String name)方法可以获得Servlet的初始化参数。


15、GenericServlet类:抽象类,定义一个通用的、独立于底层协议的Servlet。大多数Servlet通过从GenericServlet或HttpServlet类进行扩展来实现ServletConfig接口定义了在Servlet初始化的过程中有Servlet容器传递给Servlet的配置信息对象。HttpServlet是GenericServlet的子类。GenericServlet是一个抽象类,必须给出子类才能实例化。它给出了设计Servlet的一些骨架,定义了Servlet声明周期,还有一些得到名字、配置、初始化参数的方法,其中设计的是和应用层无关的,也就是说你可能用非http协议实现它。HttpServlet是子类,当然具有GenericServlet的一切特性,还添加了doGet、doPost、doDelete、doPut、doTrace等方法对应处理http协议里命令的请求响应过程。一般没有特殊需求,自己写的Servlet都扩展HttpServlet。


16、HttpServletRequest接口扩展ServletRequest接口,为HTTP Servlet提供HTTP请求信息。HttpServletRequest是一个接口,具体实现类由容器(如Tomcat)提供,所以相同的代码在不同的服务器下运行,结果可能会不同。ServletRequest接口定义了一些setCharacterEncoding()、getAttribute()、getProtocal()之类的方法,HttpServletRequest接口扩展了他,并定义了Http特有的方法,如getCookies()、getHeader()、getPath()。


17、Java8中可以有default方法。


18、通过HttpServletRequest.getParameter获取的参数,编码格式由浏览器决定,浏览器根据html中指定的编码格式进行编码,tomcat根据指定的格式进行编码。另外,get请求和post请求对编码格式的处理也是不同。


19、使用final关键字修饰一个变量时,是指引用变量不可变,引用变量所指向的对象中的内容还是可以改变的。


20、finalize:Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。注意:finalize()不一定被JVM调用,只当这个垃圾回收器要清除垃圾时才会被调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值