文档章节

java基础知识汇总,不断更新中

echola
 echola
发布于 2017/04/14 10:23
字数 1250
阅读 665
收藏 5

JavaSE基础

  • 内存的常量池、堆、方法区
    • 栈:线程私有的,与线程在同一时间创建,存放的是方法的变量表,返回值,基础数据类型等
    • 堆:线程共享的,放的是所有的对象实例和数组,垃圾回收器主要回收这一部分的数据
    • 方法区存放的是常量、静态变量。
  • 泛型:主要解决了类型转换出错的问题,将类型参数化,例如,在集合里面使用,明确告诉这个集合只能放这种类型的对象,在编译期会对所使用的类型做检查,然后类型擦除。
  • 基础数据类型的比较:Integer在调用==的时候,用的是valueOf的方法,在-128到127之间,比较的是值。
  • hashCode,equals
    • Equals的使用规则是用于判断两个对象的内容是不是相等,可以根据需求重写。
    • HashCode:在往Set这类不可以添加重复元素的集合中添加数据的时候,如果没有HashCode,每添加一个,都得去和集合里面其它的元素做个比较,而引入HashCode,在添加元素的时候先去获取HashCode的值,也就是在集合里面存放的位置,如果位置不一样,那就是不同的元素,如果位置一样,那么再根据equals方法判断是不是一样。所以,如果我们因为业务需要重写了equals方法(两个对象的内容一样,视为同一个对象),那么必须重写hashCode方法(两个内容一样的对象,就应该放到同一个篮子里面吧)
  • 接口、抽象类
    • 接口:对外提供的一个契约
    • 抽象类:为了代码复用
  • 内存调优
    • -Xms:堆内存初始值,默认是物理内存的1/64
    • -Xmx:堆内存最大值,默认是物理内存的1/4
    • -xx:PermSize:非堆内存的初始值
    • -xx:MaxPermSize:非堆内存的最大值
  • 多线程、线程池
    • 线城池:分为可缓存线程池newCachedThreadPool(有空闲的回收,没有了就开新的)、定长线城池newFixedThreadPool(超过最大数在队列里面等待)、定长线程池支持周期性执行任务newScheduledThreadPool
  ExecutorService cachedThreadPool =Executors.newCachedThreadPool();  

Web.xml作用

  • 欢迎|异常|报错页面的配置
  • servlet|filter|listener的配置
  • 会话时期配置<session-config>
  • 上下文参数:<context-param>
  • web图标|描述的配置
  • 登录验证的配置

Spring

  • applicationContext.xml:bean的配置管理、properties加载器,包扫描配置、事务管理
  • AOP
  • IOC
  • 依赖注入,控制反转的概念区别
    • 依赖注入:应用程序依赖容器并且需要容器向应用程序注入所需要的资源。
    • 控制反转:容器控制应用程序并且向外部注入所需要的资源。
  • SpringBean相关
    • @Autowired和@Resouce的区别:@Autowired是Spring的注解,默认按照类型进行注入,默认依赖的对象必须存在,可以设置required=false来修改该设置,如果用名称进行装配,则可以使用@Qualifier("beanName");@Resouce是JaveEE注解,默认按照名称进行装配,如果按照名称找不到才按照类型进行装配。
    • bean的作用域:singleton(默认),request,session,globalSession
  • Spring事务

Mybatis

  • 底层实现
    • SqlSessionFactory-->SqlSession-->Mapper
  • resultType和resultMap的差别
    • resultType和model直接对应,sql查出来的字段必须和model的属性对应。
    • resultMap中定义了model和sql字段的对应关系,sql查出来的字段和resultMap中定义的映射映射关系要一致

Hibernate

  • 缓存
  • 生命周期
  • 配置:
    • mappedby:用在oneToMany,oneToOne,ManyToMany中,标签定义在被拥有方(放在那个类里面哪个就是主表)指向拥有方,拥有方维护外键关系。交给多方来维护。
  • Hibernate实体的状态:
    • 临时状态:没有OID,Session中没有
    • 持久状态:有OID,Session中有
    • 游离状态:有OID,session中没有

Maven

  • 生命周期

Tomcat

  • 内存调优:配置在catalina.sh/bat中设置

Mysql

  • 内存调优
  • 行转列
  • limit ,group by having count

JDBC

原生JDBC如何进行事务管理

关闭自动提交,设置事务隔离级别,设置保存点,提交事务,异常回滚

conn.setAutoCommit(false);

conn.setTransactionlsolation(Connection.TRANSACTION_SERIALIZABLE);//隔离级别
// sql操作1
Savepoiont p1 = conn.setSavepoint("p1");//保存点
// sql操作2
Savepoiont p2 = conn.setSavepoint("p2");//保存点

conn.rollback(p1);

conn.commit();

前端

  • Ajax
    • Ajax原理:XmlHttpRequest对象可以和服务器进行交互。
    • 缺点:破坏了浏览器的后退机制,安全问题,违背了url和资源定位的初衷
XmlHttpRequest xmlhttp = new XmlHttpRequest();
xmlhttp.open("post",url,false)
xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            document.getElementById("user1").innerHTML = "数据正在加载...";
            if (xmlhttp.status == 200) {
                document.write(xmlhttp.responseText);
            }
        }
}
xmlhttp.send();
  • Session
    • sessionId的重写:HttpServletResponse.encodeURL(String url),该方法会自动判断客户端是否支持Cookie。如果客户端支持Cookie,会将URL原封不动输出来。如果客户端不支持Cookie,则会将用户Session的ID重写到URL中。

© 著作权归作者所有

echola
粉丝 13
博文 23
码字总数 12268
作品 0
西安
程序员
私信 提问
服务器后端开发系列——《实战Memcached内存缓存系统》

1、实战Memcached缓存系统(1)Memcached基础及示例程序 内容:建筑Memcached背景知识和入门示例程序。 2、实战Memcached缓存系统(2)Memcached Java API基础之MemcachedClient 内容:以Mem...

晨曦之光
2012/04/24
112
0
本地方法怎么映射Java层的数据类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangyangzhizhou/article/details/79576578 前言 Java 语言上定义了不同的数据类型,比如有基础类型、等等,还...

超人汪小建(seaboat)
2018/03/16
0
0
java 7 入门书籍

一、Java从入门到精通 《Java从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。 《Java从入门到精通(第3版...

modernizr
2014/05/15
7.5K
9
你必须掌握的 21 个 Java 核心技术!

你必须掌握的 21 个 Java 核心技术! Java技术栈 2018-10-29 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,希望可以给大家一些经验,能让大家更好学习和使用Java。 ...

浮躁的码农
04/15
79
0
金九银十,史上最强 Java 面试题整理。

以下会重新整理所有 Java 系列面试题答案、及各大互联网公司的面试经验,会从以下几个方面汇总,本文会长期更新。 Java 面试篇 史上最全 Java 面试题,带全部答案 史上最全 69 道 Spring 面试...

Java技术栈
2018/09/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 年迈渔夫遭黑帮袭抢

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享Elvis Presley的单曲《White Christmas》: 《White Christmas》- Elvis Presley 手机党少年们想听歌,请使劲...

小小编辑
今天
1K
16
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
12
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部