java 基础知识点(未分类)

javaEE :
servlet,jsp Ejb,网页设计(html/javascript/css),jdbc/jndi,xml,..
EJB(Enterprise Java Bean)用于数据库的增删改查,适用于分布式数据库服务器。
轻量级J2ee是指该服务器不支持EJB。
轻量级J2EE主要指:
SSH=Struts2,Spring,hibernate,
SSM=Struts2,Spring,Hibernate
SS=Struts2,Spring

hibernate: 是一款操作数据库表增删改查的工具
才用ORM技术实现
1 原理:将关系型数据库Rdb,转换为Mapping java对象(Object)。
采用操作java对象的方法,处理数据表增删改查操作
2 hibernate 采用ORM技术处理数据表操作
3 ORM(Object Relational Mapping)只一个接口中规范,没有具体实现
4hibernate是ORM的具体实现技术之一。 


hbm文件是一个映射文件,mapping文件处理关系型数据库,与java类有映射关系。


hibernate的session有四个作用
处理数据库连接的建立与关闭
处理持久化缓存
处理数据表增删改查操作
处理事务提交
hibernate的session是数据库操作专用工具,不是jsp中的session会话,而是直接缓存,也成为一级缓存
SessionFactory的概念:应是hibernateSessionFactory用于取得hibernate的session工厂,也就是session工具类 ,也称为二级缓存或间接缓存。


pojo的概念(Plain(简单的) Old Java Object)一个简单的java类对象
pojo对象的三个状态:1.临时态 瞬态:这个类对象,在方法完成后,要进入回收站,这种状态称为临时态。2.持久态:在session缓存中,不进回收站。3.游离态:方法关闭后,不进回收站,但也不再session缓存中,不能提交到数据库。


DAO的概念(Data Access Object)作用:用于某一个数据表增删改查操作的统称


PO的概念(Persistent Object)持久化对象作用:用于缓存某一个数据表一条记录全部字段的类对象。




jsp cookie与session两个概念比较
1. cookie 服务器保存在客户端的一个小的文本文件不同的项目之间,可以共享同一个cookie,只要名称相同即可,服务器关闭后,客户端的cookie依然还存在
2. session 是服务器为系统的客户端开辟一个小的内存空间 不同的session之间不能共享数据库,服务器关闭后,session自动失效,处理用户登录账户用session。


1 HQL=hibernate Query Language Hibernate查询语言
2 内含 将数据库(Rdb)转换为java对象,采用java对象执行数据库查询hql仅仅在hibernate中有效。 
3 hql 查询要点 hql查询语句中没有select关键词
如果hql有select,则含义发生变化,
where条件,order by 后面的字段名称,均用pojo类属性,不再是数据表表字段名称。






数据库统计参数:count(求个数) sum(求和) avg(平均) max(最大) min(最小)




双向映射:one-to many,一对多 one 指向主表,many指向字表




Spring的概念
1 spring是一款开源组件,open sourse。
作用:可以独立封装jdbc,采用sql方法,高效处理数据库操作。可以监控代码的运行,可以与其他组件集成。可以让现有代码运行更加灵活。有自己独立的mvc展示工具,Spring+MVC可以取代Struts2x。


Spring 的工作原理
1.spring的核心原理是java反射技术,是java自身技术,不需要任何其他组件,是管理jaava内部结构的一项高级技术。在写一写高级代码时必须用的手段。


Ioc 技术,Inversion of Control 控制反转。spring含义:构建一个类对象,不是有构造函数直接构造出来的,而是通过spring容器构造的。这一过程就是控制反转。
SpringIOC模块:core模块,基础内核模块。IOC模块。XmlBeanFactory模块。


spring可以不修改代码,只需要修改Bean.xml文件,就可以改变代码运行轨迹。


spring中Bean 的概念。引申为java类的对象。Spring采用java的bean概念表示对类与对象的管理。


DI=Dependent Injection依赖注入  含义:java的类属性是通过spring的bean.xml注入,或送入不是类的set方法送入。这一过程就称为spring的DI操作。也就是属性的注入。




spring模块:
ioc: Core模块,也是基础内核模块  XmlBeanFactory 模块
Aop:面向切面的编程,Aspect Oriented Programming;spring监控代码运行的工具,有前置、后置、异常、环绕、
DAO模块  也称为jdbc模块,是spring独立封装jdbc,采用sqql技术,处理数据表增删改查操作工具组件,
ORM模块 是spring与orm组件集成,例如与Hibernate集成采用ORM技术,处理数据表增删改查操作的工具组件
Spring-MVC模块 作用于struts2相同,是spring独立jsp,采用mvc处理jsp页面展示的工具组件是一款更高级的jsp












多态:一个父类的方法,有多个不同子类覆盖实现时,每一个不同的实现,便是一个多态。


List集合:有序可以有重复元素的集合。
List相关的API list的父接口是Collection, Collection的父接口为Iterable。 
List list=new ArryList();//线程不安全,效率快。
List list=new Vector();// 线程安全,效率慢,用于Swing
int size=list.size();
list.add(Object ibj);
list.add(int index,object obj);//插队,比原有size多了一个
list.set(int index,Object obj);//替换,比原有size相同
list.remove(int index);//删除 索引位置对象,比原有size少一个。
list.clear();//清空list集合所有元素
boolean check=list。contains(Object obj);


Set集合定义:是无序的,没有重复元素的集合
这里的无序是指不能通过序号对集合的元素进行定位操作
Set集合的父接口Colletion,再ollection的父接口是Iterable
这一点上与List接口相同,有相同的父接口
Set set=new HashSet();
存入的顺序与取出的顺序不相同
Set set=new LinkedHashSet();
存入的顺序与取出的顺序相同
Set set=new TreeSet(Comparator comp);
存入的顺序与取出的顺序不相同
可以实现每加入一个元素,对集合的所有元素执行排序
set.add(Object obj);
boolean check=bject obj);
Iterator it=set.iterator();




Map集合定义:是一组<键,值>元素的构成的集合,<键>是一组无序的,没有重复元素的集合
相关API
Map map=new HashMap();   //线程不安全
Map map=new Hashtable();  //table中的t小写,线程安全
Map map=new LinkedHashMap();
Map map=new TreeMap();
map.put(Object key,Object value);
Object value=map.get(Object key);
Set keys=map.keySet(); //取得键元素集合变量
boolean check=map.containsKey(Object key);
boolean check=map.containsValue(Object value);


AOP Aspevt Oriented Proramming 面向切面编程
Spring 的AOP 采用AOP技术,监控代码的运行,一个方法在运行的时候AOP可以做到
监测每个方法运行的每个参数的数据类型,参数值
这个方法的返回值
这个方法运行过程有无异常
这个方法内部的某一行时,局部变量的值
Spring的AOP分别为
前置:监控方法运行前时刻
后置:监控方法运行到返回的时刻
异常:监控方法内部出现异常时刻
环绕:监控一个方法任何一行,一句局部变量的值进行监控


get提交: 是以字符名码的方式向后台提交数据,提交的内容在地址行可见,不安全,提交的数据量小,小于2k。
post提交:是以二进制打包的方法向后台提交数据,提交的内容在地址行不可见,安全提交的数据量大,可以无限大。


oop 面向对象特征:封装, 继承,多态,抽象。


Spring-ORM模块说明
是Spring组件与ORM集成,采用ORM技术,处理数据表操作的模块
例如Spring与Hibernte集成,处理ORM操作
Spring没有独立的ORM组件
编程要点
首先确保hibernate可以独立工作
然后再与spring给合,之后,orm更加简单


hibernate 懒加载问题:
1.lazy=“true” 表示一个类对象,只有最后真正使用时,才能最终到数据库查询。不仅如此,以后多次用到这个类对象,也重复使用,不再到数据库查询,而是直接使用原来查询结果。
2.lazy=“flase”只有数据查询,立刻执行查询,这种方式,不容易出现异常。


事务定义:执行某项目业务,要涉及到数据库多个相互关联的操作,这些操作要么全部成功,要么全部失败,如果失败,则回滚到初始状态。
属性:ACID= Atomicity(原子性) Consistency(一致性) Isolation(隔离性) Durability(持久性) 
原子性:表示某个具体事务的多个相互关联的操作合起来是一个最小计量单位不能细化分割。
一致性:表示某个事物在执行过程中。没有错误发生,按原计划进行。
隔离性:表示多个事务同时进行时,本事务通通受到影响。
持久性:表示某个事务一旦完成,则不能反悔,或撤销。


事务处理:transection
1.只要是事务处理一定是数据库的事务,有多种实现方式
2.jdbc实现事务:jdbc+数据库,二者协同处理事务,缓存发生在数据库,jdbc无缓存。
3.hibernate事务:hibernate+jdbc+数据库,三者协同处理事务,缓存发生在hibernate+数据库两个地方。
4.Spring事务处理的概念 实现方式:是spring+hibernate集成ORM方式处理事务
1.编程式事务:在spring的事务代码框架中处理代码框架非常复杂。
2.声明式事务:用Bean.xml 申明方式处理事务,这种方式简单。






struts跟struts2的区别:
struts1有核心控制器,但只提供了一个接口,也就是excute,还要配置actionform之类,很麻烦,所以依赖性比较强;而struts2是指对拦截器开发的,也就是所谓的AOP思想,可以配置多个Action,用起来比较方便,但是因为请求之前的拦截器有一些注入的操作,速度相对于stuts1要慢。Struts2是Struts2和webwork的结合。




struts2概念,是一款简单的开源工具,用于前台jsp的开发,类似于jdbc-hibernate,或者spring-jdbc。
特点:有mvc框架,公认度高,简单易用,自动与spring-hibernate集成,比spring-mvc容易。


jsp常用的对象:5个 request,response,out,session,application。




struts2工作原理:是采用过滤器工作,过滤器收到客户的浏览器请求后,调用一系列的拦截器,内部采用值栈传递数据。拦截器将处理的结果,送给客户端浏览器。


MVC :
M部分:管理业务数据模块,在javaWeb开发中体现在PO类,或者POJO类,hbm,DAO类,BO类?
V部分:view展示数据视图的模块,有与数据展示相关文件,都是v部分,jsp、html、css、js、sevlet、
C部分:Controler控制器,是MVC代码框架的控制核心,体会在将M与V部分对接,在需要的时候进行执行转发相关文件可能有sevlet或jsp转发器,Struts2中的action类。


只能从.action打开jsp页面是因为直接打开jsp页面时,没有request数据源(setAttribute/getAttribute)
不能得到action中List集合的列表项数据,如果从.action到jsp,则struts2将List集合变量数据通过request,setAttribute送入所以jsp页面可以取得列表项数据。


jsp与struts2youshenmebutong。
jsp没有MVC矿建,所有工作需要自己用代码完成,
struts2-jsp也是jsp,更高级的jsp。封装的jsp
Struts2-jsp有叶面积仪功能, 有数据校验功能,能事项页面之间的数据传递,能自动收集前台提交的数据,及类型装换。


相对转发:type="chain" .action-->.actiom 传递数据
 type="dispatcher" 表示.action -->.jsp传递数据
原理:采用request数据链传递数据(request.setAttribute()/getAttribute())
可以在页面之间,用Struts的值栈传递数据。
直接转发: 页面重定向,服务器直接将请求地址指向目标地址 
type="redirect"
原理:采用response 方式转发页面,request数据链无效 
Struts2值栈数据不能再页面之间(action 到action,action到jsp)传递地址行
的地址是转发后的地址,所以称为重定向。
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java核心知识点整理 1.Java中没有多继承,而是用接口来代替多继承 2.运行一个已经编译的程序时,Java解释器总是从指定类的main方法中的代码开始执行,因此,执行代码中必须有一个main函数。 3.Java是典型的强类型语言,即必须声明变量的类型,Java中有8种类型,6种数值类型(4个整数型和2个浮点型)、一个字符类型和一个boolean类型。 想学习java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。 4.强制类型转换: int nx = (int) x; // (语法:用圆括号将目标类型括起来,后面跟上要转换的变量); 5.Java不能为单独的方法,如main方法,定义局部常量,而只能为类定义常量,供该类的所有方法使用,所以,通常称之为类常量。如: class UsersConstants{ 2public static final double g = 32; public static final double main(String[] args){ System.out.println(g); } } 注意:常量定义于main方法的外边,而且必须有关键字 static final; 6.字符串的子串: String str = hello”“; String str1 = str.substring(0,4); //输出hell 7.不要用==运算符来测试两个字符串是否相等,该运算符只能判断两个字符串是否存在同一个位置。 用equals. String str = “hello”; str.equals(”hell”); // return false; 8.对象的行为、状态、标识 9.面向过程与OOP

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值