JavaEE重难点(概念篇)

文章目录

  • 1,推荐使用静态工厂方法代替构造器:
  • 2,面向对象的三大特性:
  • 3,static概念及隶属关系,访问问题及使用的场景:
  • 4,web-前后端分离:
  • 5,web-前端VUE技术栈介绍:
  • 6,方法重写和重载:
  • 7,异常:
  • 8,css-js三种引入的方式:
  • 9,盒子模型及其使用:
  • 10,css文档流和定位:
    • 文档流:
    • 11,相对定位,绝对定位,固定定位:
  • 12,session的创建和销毁:
  • 13,线程状态
  • 14,JQuery选择器:
  • 15,Dom对象和jquery对象:

1,推荐使用静态工厂方法代替构造器:

优点:

1.有名字,
2.不用每次调用对象都创建一个对象,
3.返回原来的类型的任何的子类型的对象(多态的实现)
4.创建泛型对象更简洁

public class GenericDemo {
	//创建泛型对象更加的简洁
    public static  <K,V>Map<K,V> mapInstance(){
        return new HashMap<K,V>();
    }
    public static void main(String[] args) {
        Map<String,List<Integer>> map = new HashMap<>();
        Map<String,List<Integer>> map2 =GenericDemo.mapInstance();
    }
}

2,面向对象的三大特性:

  1. 继承:
    子类拥有父类的方法、属性
    单继承,但是如果接口之间可以多继承
public interface A
{
}
interface B
{
}
interface C  extends A,B
{

}
继承时,必须符合访问修饰符的权限
构造方法不能被继承
final修饰的类不能继承

缺点:增加耦合性

  1. 封装:
    1.学习时, 将某些细节(方法、属性)进行 可见性的控制
    private void sayHello()
    {
    }
    Arrays.sort()
    2.开发时:隐藏类/对象内部的细节(方法、属性)
    小王,你帮我们封装一个方法:传入一个http//:www.test.com ,自动给我返回一个域名 test
    public String getDomain(String url)//http//:www.test.com
    {

    return domain ;//test
    }
    举例:感冒药:不用在乎里面的化学成分。只关心有治疗感冒的作用
    收音机

作用: 模块化编程、代码复用

JDBC的操作获取PreparedStatement:
public PreparedStatement getPrexxx(){
Class.forName();
Conection connection = DriverManager.getConnection(url,username,password);
connection.pre…
}

PreparedStatement pstmt = getPrexxx();

  1. 多态:
    “歧义”,必须根据上下文才能断定 其具体含义
    打:打架 打水 打篮球
    父类引用 指向子类对象

3,static概念及隶属关系,访问问题及使用的场景:

  1. 我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说,即使没有创建对象,也需要一个能调用的方法。为满足这种要求,可使用
    static(静态)关键字。一旦将什么东西设为static,数据或方法就不会同那个类的任何对象实例联系到一
    起。所以尽管从未创建那个类的一个对象,仍能调用一个 static方法,或访问一些 static数据。
    –《Java编程思想》 作者:Bruce Eckel

非static :对象 ,独有的
static :类 (对象),共享
非static变量:
每个对象各自独有一份
static变量:
(同一个类)各个对象全部共享

  1. 重写:
    不能被重写:
    private ,final , 构造方法 ,static
    static不能被重写的原因:时机不同,概念不适用
    方法重写:运行动态时绑定
    static修饰的方法: 编译
  2. static访问问题:
    static只能另一个也是static
    非static访问 :既能访问有static,也能访问非static
  3. static使用场景:
    a.常量:
class  A{
		public static final NUM = 100;
	}
A.NUM  -> 100

b.工具类中的方法:

4,web-前后端分离:

JavaEE重难点(概念篇)_第1张图片

  1. 不用分离的缺点:
    前端
    表格:
    100*100 ->后端 先写数据,返回数据.
    后端:
    增加学生: form… submit->前端数据-> controller->service->dao->db
  2. 前端后分离:
    前端和后端 各自开发(同时执行),最后只需要联调
    解决思路:
    1.数据:工具/技术:
    前端:需要后端数据(EasyMock模拟后端返回的数据)
    后端:需要前端数据(postman模拟)
    2.规范:
    数据格式: json {code:状态码, flag:true|false,data:{…}}
    {total:总数据量, code:状态码, flag:true|false,data:{…}}
    { code:状态码 20000 }
    前后端交互的数据 都是json格式
    100种数据:需要通过文档来定义 swagger

5,web-前端VUE技术栈介绍:

  1. ES:标准
    ESLint:语法检查,为了让团队开发时 代码更加规范、统一

  2. webpack:打包/压缩工具 , 原生态只支持js;扩展后 可以支持图片 css

  3. elementui:基础vue的组件库,可以快速生成 一些管理界面,github

  4. axios:前后端交互库 ,把ajax进一步做了封装

  5. Nuxt:基于VUE、axios一个服务端渲染框架,有利于SEO优化技术
    搜索引擎:百度 google :spider
    笔记本: 10000
    spider:不喜欢 js
    Nuxt可以编写少量的js,因此利于搜索引擎的 爬取,从而 利于seo优化,使得搜索时排名靠前。

  6. npm:前端的maven
    jquery.js
    通过一条命令 自动从网上下载需要的js库

  7. NodeJs:服务端脚本程序,基于npm(自带npm);模块化开发

  8. vue:渐进式的js框架,核心只关心视图层,可以快速的和三方库或者已有项目进行整合。

  9. Swagger:前后端交互时的数据规范,在网页中编写规范

  10. Mock.js可以模拟各种各样的数据 ,供前端开发时使用。

  11. easy mock:产生 url +数据(swagger+mock.js)
    同步swagger

  12. vue前端流程:

路由router   (1 ->a.vue     2->b.vue    3->c.vue)  
a.vue 	b.vue 	c.vue 

->




第三种:外部引入
myjs.js
	function xx()
	{
		alert(...);
		..
		..
	}	


建议使用外部引入:1.显示(html) 和 功能(js)代码相分离
		 2.利于seo(搜索引擎的优化技术,js有阻碍 搜索引擎的爬取)

html(外部引入js)
js

2.引入css
第一种:行内引入
第二种:内部引入 id选择器>类选择器>标签选择器 id选择器在同一个页面,只能使用一次

第三种:外部引入 mystyle.css外部文件 h1{background-color:red} xx.html 引入到html 两种方式的外部引入: a.链接式,推荐 1.属于xhtml 2.先将css文件加载到网页中,在编译显示 (html和css同时显示) b.导入式 @import url("mystyle.css") 1. css2.1 2.先引入html结构,之后再引入css文件 (先有html后又css) 优先级:js/css三种引入方式时, 行内>内部>外部

9,盒子模型及其使用:

JavaEE重难点(概念篇)_第3张图片

10,css文档流和定位:

文档流:

display:none|block|inline

标准文档流(网页是否能够识别):
	块级元素	   display="block"  , 可以设置高和宽 style="height:300px"
		

11,相对定位,绝对定位,固定定位:

css的position属性:定位
position: static(默认)
	   relative:相对定位
	   absolute:绝对定位
	   fixed:固定定位
	   
relative:相对于自己原来的位置  ,top bottom  left right
	  相对定义 一般不会单独使用, 一般作为 决定 或者固定定位的参照点



绝对定位:1.相对于 最近一个“已经定位的父元素”父元素; 如果整个 祖先元素 都没有定位,则以 浏览器为参照点 2.脱离文档流 3.使用场景: 下拉菜单、轮播图、气泡等效果 假设:a已经定位postiion过, 但b没有定位过; 如果给c设置决定定位,则c便宜时的参照物 就是a
固定定位fixed:相对于浏览器 脱离文档流 使用场景: 底部、顶部广告 span { position: fixed; left:100px; /*距离浏览器左边有100px*/ top:200px ;/*距离浏览器上边有200px*/ }

12,session的创建和销毁:

图解:
JavaEE重难点(概念篇)_第4张图片

JavaEE重难点(概念篇)_第5张图片

13,线程状态

JavaEE重难点(概念篇)_第6张图片

14,JQuery选择器:

jQuery选择器:
	类css选择器、过滤选择器

 $("")
一、类css选择器 
	1.基本选择器 :使用的概率最高
	标签选择器  $("h1")
	类选择器  $(".mystyle")
	id选择器 $("#id值")
	并集选择器:逗号
		 $("#myid,.mystyle")
	交集选择器: 连接着(没有任何连接符)
		 $("#myid.mystyle")
		防止歧义
		 $("p.mystyle")  
	全局选择器:选择全部的dom元素
		$("*") 
	2.层次选择器 :根据 dom元素的层次关系
		后代选择器: 空格
		$("div span")
		子代:>
		$("div>span")	
		相邻选择器+
			$("#myliid+li")     --只选中后面的
		同辈选择器~
			$("#myliid~li")     --只选中后面的
			
  • 3.属性选择器:中括号[] $("input[name]")选中所有包含name属性的input标签 $("input[name='uname']")选中所有包含name='uname'的input标签 $("input[name!='uname']")选中所有包含name!='uname'的input标签 $("input[name^='un']") 以name值是以un开头的 input标签 $("input[name$='me']") 以me结尾 $("input[name*='u']") 包含u 二、过滤选择器 : 筛选 1.基本过滤选择器 :第几个、最后一个、第0个、奇数个、偶数个 $("input:first") $("input:last") $("input:odd")奇数 $("input:even")偶数 $("input:eq(n)")第n个 $("input:lt(3)") 个数<3的元素 $("input:gt(3)") 个数>3的元素 $(":not(选择器A)") 选择“选择器A选中的元素”以外的元素 $(":not( $("#myid"))") 补集,取反 $(":header") :全部的标题元素

    $(":focus") 选中 光标所在元素 $(":not(:focus)") 选中 光标所在元素 2.可见性过滤选择器:根据dom元素是否课件 $(":visible") $(":hidden")
    ...
    .mystyle { }

    ...

    ...

    15,Dom对象和jquery对象:

    你可能感兴趣的:(JavaEE重难点(概念篇))