当前位置: 首页 > news >正文

佛山专业做淘宝网站网站公司制作

佛山专业做淘宝网站,网站公司制作,网站项目功能需求清单,合肥网站建设报价JQuery 一、什么是JQuery JQuery是JavaScript的一个框架#xff0c;对js的封装#xff0c;使得js简单易学 优点#xff1a; 1、不用考虑浏览器兼容性问题 2、jquery拥有强大的选择器#xff0c;简化了js代码 3、jquery提供了很多系统函数#xff0c;直接调用 二、版本 1.x… JQuery 一、什么是JQuery     JQuery是JavaScript的一个框架对js的封装使得js简单易学     优点         1、不用考虑浏览器兼容性问题         2、jquery拥有强大的选择器简化了js代码         3、jquery提供了很多系统函数直接调用 二、版本         1.x版本兼容ie678使用最为广泛的官方只做bug维护功能不再新增。         2.x版本不兼容ie678很少人使用官方只做bug维护功能不再新增。         3.x版本不兼容ie678只支持最新的浏览器。除非特殊要求一般不会使用3.x版本的.         注jquery版本不是向下兼容的 三、怎么使用jquery     1、在官网上下载一个jquery核心js放入到项目中     2、在网页中映入jquery核心js代码如下         script typetext/javascript srcjs/jquery-2.1.1.min.js/script 四、jquery核心函数     jQuery()            $();     jQuery $ 五、初始化函数     js版window.onload function () {}     jQuery版jQuery(function(){});                $(function() {});                $(document).ready(function () {})                $().ready(function () {});    注jQuery初始化函数比JavaScript初始化函数优先级要高 六、选择器     1、基本选择器         id                      $(#)         class                   $(.)         标签                     $(标签名)         通配符                   $(*)     2、层级选择器         后代                      $(ul li)         子代                      $(ul li)         同级别后面第一个            $(div p)         同级别后面所有              $(div ~ p)     3、伪类选择器         第一个p标签              $(p:first)         最后一个p标签             $(p:last)         偶数行从零开始           $(table tr:even)         奇数行从零开始           $(table tr:odd)         第三行从零开始           $(table tr:eq(2))         大于第三行从零开始        $(table gt:eq(2))         小于第三行从零开始        $(table lt:eq(2))     4、表单选择器         属性选择器               $(input[nameusername])         单选框与复选框被选中的     $(input:checked)         下拉框被选中的            $(select option:selected) 七、循环函数     $().each(function(i,element)){     //循环体     }     参数i表示循环的下标从零开始变量名自定义参数可选     参数element表示循环出来的元素变量名自定义参数可选在循环体中可以使用this关键字代替 八、操作属性     attr()                  设置/获取网页元素属性操作html标签原生属性     removeAttr()            删除网页元素属性操作html原生属性     prop()                  设置/获取网页元素属性属性不显示不适合操作html标签原生属性     removeProp()              删除网页元素属性属性不显示不适合操作html标签原生属性     addClass()                添加class属性     removeClass()             删除class属性     toggleClass()             切换class属性     html()                  设置/获取网页元素中间html代码     text()                  设置/获取网页元素中间纯文本     val()                   设置/获取网页元素的value值 九、操作css     CSS()                   设置网页元素的css样式css属性名如果是多个单词使用-或者驼峰命名                             例如font-size    fontSize     height()                设置/获取网页元素高度     width()                 设置/获取网页元素宽度     innerHeight()           设置/获取网页元素内部高度内部高度 div高度 内边距高度     innerWidth()            设置/获取网页元素内部宽度内部高度 div宽度 内边距宽度     outerHeight()           设置/获取网页元素外部高度外部高度 div高度 内边距高度 上下边框     outerWidth()            设置/获取网页元素外部高度外部高度 div宽度 内边距宽度 左右边框     offset()                获取网页元素的坐标top表示顶点位置left表示左边位置     position()              获取网页元素的定位坐标top表示顶点位置left表示左边位置     scrollTop()             设置/获取网页元素纵向滚动条偏移量     scrollLeft()            设置/获取网页元素横向滚动条偏移量 十、文档处理     append()                内部插入向尾部追加内容从右边添加到左边     appendTo()              内部插入向尾部追加内容从左边添加到右边     prepend()               内部插入向头部追加内容从右边添加到左边     prependTo()             内部插入向头部追加内容从左边添加到右边     remove()                删除本身标签     empty()                 清空标签下的内容标签本身不删除     clone()                 标签本身复制一份     before()                外部插入向元素前面插入从右边添加到左边     insertBefore()          外部插入向元素前面插入从左边添加到右边     after()                 外部插入向元素后面插入从右边添加到左边     insertAfter()           外部插入向元素后面插入从左边添加到右边     wrap()                  给元素添加包裹     unwrap()                移除元素的包裹     wrapAll()               外部包裹把多个相同元素包裹在一起     warpInner()             内部包裹把每个标签内部内容进行包裹被原标签包裹。     replaceWith()           替换右边替换左边     replaceAll()            替换左边替换右边 十一、事件     click()                 单机事件     dblclick()              双击事件     change()                改变事件     focus()                 获取焦点事件     blur()                  失去焦点事件     ... 十二、效果了解     show()                  显示     hide()                  隐藏     toggle()                切换  显示/隐藏     slideDown(time)         根据设定时间滑入时间单位毫秒     slideUp(time)           根据设定时间滑入时间单位毫秒     slideToggle(time)       根据设定时间切换 滑入/滑出 时间单位毫秒     fadeIn(time)            根据设定时间淡入时间单位毫秒     fadeOut(time)           根据设定时间淡出时间单位毫秒     fadeToggle(time)        根据设定时间切换 淡入/淡出 时间单位毫秒 JSON 一、什么是json     json是一种数据格式前后端通讯的数据传输格式一堆的字符串。json数据格式与计算机语言无关Java、JavaScript     C都是支持json数据的 二、数据格式有哪些     1、自定义拼串         1|刘备|男|1999-08-16|成都2|曹操|男|1999-08-16|许昌3|孙权|男|1999-01-11|建宁         优点内容短传输效率高         缺点没有扩展性无法支持多表可读性差解析差容易出错     2、xml         persons             person id1 name刘备 sex男 birthday1999-08-16 address成都 /             person id1 name曹操 sex男 birthday1999-08-16 address成都 /             person id1 name孙权 sex男 birthday1999-08-16 address成都 /         /persons         classes             class id1 nameQF2111                 student id1 name张三 sex男                 student id2 name张三 sex男             /class             class id2 nameQF2112                 student id1 name张三 sex男                 student id2 name张三 sex男             /class         /classes         优点扩展性强能支持多表可读性好解析容易不容易出错         缺点内容过长传输效率低     3、json     [         {id:1,name:刘备,sex:男,birthday:1999-08-16,address:成都},         {id:2,name:刘备,sex:男,birthday:1999-08-16,address:成都},         {id:3,name:刘备,sex:男,birthday:1999-08-16,address:成都}     ]     [         {id:1,name:QF2111,students:[                                                 {id:1,name:张三,sex:男},                                                 {id:2,name:李四,sex:男}                                              ]},         {id:2,name:QF2112,students:[                                                      {id:3,name:张三,sex:男},                                                      {id:4,name:李四,sex:男}                                               ]}     ]     优点扩展性强能支持多表,解析容易不容易出错,内容较短     缺点可读性不高 4、json的版本     jackson                 国外                  spring框架默认使用     Fastjson                阿里                  属于第三方jar AJAX 一、什么是AJAX     ajax全称Asynchronous (异步) Javascript And Xml                 异步的JavaScript与XML     web1.0              浏览信息     web2.0              网页交互    比如电商、邮件、游戏         ajax推动web2.0主要技术     html静态网页获取动态数据就要用到ajax *****二、ajax的创建步骤     1、创建ajax核心对象XMLHttpRequest      var req new XMLHttpRequest();     2、 第二步连接服务器         请求servlet           第一个参数提交方式          取值get/post           第二个参数访问后端url           第三个参数boolean值 是否异步请求true为异步false为同步     3、发送请求     req.send();     4、指定回调函数接收返回值     req.onreadystatechange function () {                     //什么时候拿返回结果俩个判断条件1、http状态200 2、ajax状态等于4                     if(req.status 200 req.readyState 4){                         var json req.responseText;                         var jsonObj JSON.parse(json);//js解析json                       }                 } 三、http状态     ajax获取http状态req.status     1.X     通知  接收到请求并准备执行     2.X     请求成功并完全返回结果     3.X     重定向错误     4.X     客户端     5.X     服务器端错误 *****四、ajax状态     ajax获取本身状态req.readyState     0表示未初始化状态XMLHttpRequest被创建但没有进行初始化没有调用open函数     1表示初始化状态对象已建立调用了open函数但没有发生请求没有调用send函数     2表示发生状态XMLHttpRequest调用了send函数但是没有得到响应     3表示接收状态已经接收部分数据但req.responseText没有完全接收完毕     4表示完成状态完全接收数据 五、js解析json     js解析json字符串有俩种方式分别如下         eval()                  早期         JSON.parse()            后期推荐使用     eval()与JSON.parse()的区别         1、eval()可以解析不规则的json字符串             JSON.parse()无法解析不规则的json字符串         2、eval()无法排出恶意连接并且会解析执行安全性低             JSON.parse()会排出恶意连接不会解析安全性高             强烈推荐JSON.parse() 六、js解析xml     xml内容prompt code0 info用户名已存在 /     var xml req.responseText;     var parser new DOMParser();   //创建xml对象     var xmlDoc parser.parseFromString(xml,text/xml);    //创建xml文档对象     var span document.getElementsByClassName(prompt)[0];    //获取prompt标签对象     var code xmlDoc.getElementsByTagName(prompt)[0].getAttribute(code);   //获取prompt标签中的code属性     var info xmlDoc.getElementsByTagName(prompt)[0].getAttribute(info);   //获取prompt标签中的info属性 七、jQuery使用ajax     jQuery的ajax 是对 js的ajax的封装常用如下     1、$.ajax()      推荐使用         type        提交方式取值get/post         url         请求地址         data        请求参数表单参数         async       是否为异步请求true为异步默认false是同步         success     请求成功后的回调函数         dataType    服务器返回的数据格式类型取值json、xml、text默认、HTML、JavaScript         error       请求失败后的回调函数     2、$.post()      是$.ajax()简洁版固定提交方式是post         第一个参数请求地址         第二个参数请求参数表单参数         第三个参数请求成功后的回调函数         第四个参数服务器返回的数据格式类型取值json、xml、text默认、HTML、JavaScript     3、$.get()      是$.ajax()简洁版固定提交方式是get         第一个参数请求地址         第二个参数请求参数表单参数         第三个参数请求成功后的回调函数         第四个参数服务器返回的数据格式类型取值json、xml、text默认、HTML、JavaScript     4、$.getJSON()   是$.ajax()简洁版固定提交方式是get数据传输格式固定为json         第一个参数请求地址         第二个参数请求参数表单参数         第三个参数请求成功后的回调函数     jQuery ajax推荐使用1、2 XML 一、什么是xml     xml是一种数据格式一堆的字符串因xml可读性好一般也作为配置文件xml与计算机语言无关Java、JavaScript     C都是支持xml的 二、xml格式         persons             person id1 name刘备 sex男 birthday1999-08-16 address成都 /             person id1 name曹操 sex男 birthday1999-08-16 address成都 /             person id1 name孙权 sex男 birthday1999-08-16 address成都 /         /persons         classes             class id1 nameQF2111                 student id1 name张三 sex男                 student id2 name张三 sex男             /class             class id2 nameQF2112                 student id1 name张三 sex男                 student id2 name张三 sex男             /class         /classes         优点扩展性强能支持多表可读性好解析容易不容易出错         缺点内容过长传输效率低 三、xml解析技术     dom4j.jar IO流 一、什么是IO流     File操作系统硬盘中的文件比如.txt、.doc、jpg     流与文件内容或者网络传输内容称为IO流在java.io包下流是有方向的有输出流与输入流 二、File类     1、什么是File类         在Java中File代表一个文件或文件夹     2、构造方法             File(String path)                   根据路径创建文件或文件夹         new File(File parent,String child);     在父目录下创建子文件或文件夹         new File(String parentPath,String child)在父目录下创建子文件或文件夹     3、常用属性         File.pathSeparator      路径分隔符         File.separator          文件分隔符     4、常用方法         createNewFile()         创建一个新文件文件已存在返回false否则返回true不会覆盖         mkdir()                 创建一个单层目录目录已存在返回false否则返回true不会覆盖         mkdirs()                创建一个多层目录目录已存在返回false否则返回true不会覆盖         exists()                判断文件或文件夹是否存在存在返回true不存在返回false         delete()                删除文件或文件夹删除文件夹只能删除空文件夹删除多层文件夹                                 只会删除最底层的文件夹不会删除全部         listFiles()             获取指定目录下的所有文件与文件夹         getName()               获取文件名         getPath()               文件路径         getParent()             文件父目录         length()                文件大小         isFile()                判断是否是一个文件如果是返回true否则返回false         isDirectory             判断是否是一个文件夹如果是返回true否则返回false         isHidden                判断是否是一个隐藏文件如果是返回true否则返回false *****三、IO流的分类     1、按流的类型来分         字节流 byte        字节输入流       InputStream         以字节的形式读取                           字节输出流       OutputStream        以字节的形式写入         字符流 char        字符输入流       Reader              以字符的形式读取                           字符输出流       Writer              以字符的形式写入     2、按读写的分类         输入流             字节输入流       InputStream         以字节的形式读取                           字符输入流       Reader              以字符的形式读取         输出流             字节输出流       OutputStream         以字节的形式写入                           字符输出流       Writer              以字符的形式写入 *****四、文件流     1、文件流的类     FileOutputStream        继承OutputStream      文件字节输出流     以字节的形式写入文件     FileInputStream         继承InputStream       文件字节输入流     以字节的形式读取文件     FileWriter              继承Writer            文件字符输出流     以字符的形式写入文件     FileReader              继承Reader            文件字符输入流     以字符的形式读取文件     2、文件流的作用         文件流用来操作硬盘中文件内容依赖File类 *****五、字节流与字符流    1、字节流按字节大小读取字符流是按字符个数读取    2、字节流可以读取任何文件字符流只能读取文本文件    3、字符流的底层是字节流    注读写文本建议使用字符流其他文件使用字节流 debug 1、设置断点 2、使用debug模式运行 3、F8是下一步执行 4、F9是执行到下一断点如果没有下一个断点就会执行完毕 *****六、字符流与字节流的转换     1、OutputStreamWriter        继承Writer        本身是一个字符流        字符流通向字节流的桥梁         写入的内容是字符自动转成字节形式写入     2、InputStreamReader         继承Reader        本身是一个字符流        字节流通向字符流的桥梁         写入的内容是读取自动转成字节形式读取 七、RandomAccessFile随机读写文件     RandomAccessFile可以随机读写文件底层是以字节形式写入与读取 八、缓冲流     1、缓冲流的分类         BufferedInputStream       字节缓冲输入流         缓冲区默认大小是8kb      字节读取         BufferedOutputStream      字节缓冲输出流         缓冲区默认大小是8kb      字节写入         BufferedReader            字符缓冲输入流         缓冲区默认大小是8kb      字符读取         BufferedWriter            字节缓冲输出流         缓冲区默认大小是8kb      字符写入     2、缓冲流的作用         缓冲流是用来提高读写效率减少IO读写保护硬盘先把内容写入到缓冲区数据结构缓冲区写满后再同步到         文件中如果缓冲区没有写满通过close()方法进行同步         注如果一个文件需要持续的写入或读取建议使用缓冲流 九、数据流     1、什么是数据流         数据流一般用于网络传输针对数据类型传输的流数据流只有字节流     2、数据流的类         DataInputStream         数据字节输入流             读取         DataOutputStream        数据字节输出流             写入 十、对象流     1、什么是对象流         对象流可以把对象写入到硬盘中然后可以从硬盘中读取是java创建对象的一种方式     2、对象流的类         ObjectInputStream       对象输入流          把对象从硬盘读取到内存中    java创建对象的一种         ObjectOutputStream      对象输出流       序列化         把对象从内存写入到硬盘中         注1、被写入的对象必须实现java.io.Serializable接口否则会报错这是一个空接口            2、被写入的对象属性一旦赋值那么属性的类型也必须实现java.io.Serializable接口            以下系统类都已实现java.io.Serializable接口                 八大基本数据类型包装                 String                 Date                 集合类List、Set、Map 十一、属性文件(.properties)     .properties文件是一个属性文件可以用来做配置文件     spring boot框架使用的就是.properties文件做配置文件 多线程 一、什么是线程     线程是程序最小执行单位独立可运行的调度单元是CPU最小执行单位CPU就是用来处理线程的在一个程序     中不同的线程完成不同的任务称为多线程软件最小执行单位就是线程。 二、程序、进程、线程     程序一段静态代码     进程进程就是程序一次正常的运行过程从代码的加载到最后一句代码的运行整个过程就是进程的生命周期     线程线程是进程中独立、可调配的单元最小的执行单位     1、程序与进程的关系         一个程序一般产生一个进程但是也可以产生多个进程一个进程只能属于一个程序     2、进程与线程的关系         一个进程拥有多个线程一个线程只能属于一个进程     注一个程序至少有一个线程这个线程称为主线程其他都是子线程Java应用程序的main方法就是主线程         有程序一不定有进程有进程一定有程序         有进程至少有一个线程有线程一定有进程 *****三、线程的创建     1、继承Thread类         Thread th new Thread();         th.start();    //启动线程     2、实现Runnable接口         Thread th new Thread(new Runnable());         th.start();   //启动线程     3、两种创建方式的区别         a、Thread类本身实现了Runnable接口Runnable接口是线程的根接口         b、使用Runnable接口创建线程还是要依赖Thread类因为Runnable接口没有start()方法         c、一个类要继承线程又要继承其他类这个时候用Runnable接口因为类是单继承            如果一个类只继承线程类就使用Thread类 *****四、线程的生命周期     1、创建线程对象被构造     2、启动(就绪)线程对象调用start()方法排队申请CPU资源     3、运行CPU处理线程进入run()方法     4、中断遇到sleep()方法     5、死亡运行完run()方法线程就会死亡     线程生命周期过程     情况一创建---启动---运行---死亡     情况二创建---启动---运行---中断---就绪---运行---中断---就绪---...---死亡     情况二比较多 *****五、线程状态     1、新建(NEW)线程对象被构造没有调用start()方法     2、运行(RUNNABLE)从调用了start()方法到线程运行run()方法都处于这个状态     3、阻塞(BLOCKED)线程遇到同步锁其他线程在锁外面等待处理这个状态     4、等待(WAITING)无时间等待线程遇到了wait()方法     5、等待(TIME_WAITING)有时间的等待线程遇到了sleep(long millis)、wait(long millis)方法     6、死亡(TERMINATED)线程运行完run()方法线程已经死亡 *****六、程序的主线程     主线程是程序的入口与闭口主线程一旦死亡程序就会终止进程就会消失。     主线程代码执行完毕子线程没有执行完毕主线程不会死亡等待子线程执行完毕之后主线程才会死亡 七、线程的休眠与中断休眠     线程休眠Thread.sleep(long millis)            时间单位是毫秒     中断休眠interrupt()     注sleep()是有时间的等待一般不会使用interrupt()方法进行唤醒时间到了自动唤醒强制唤醒sleep()         方法会抛出InterruptedException异常         保证线程执行优先级 书写顺序 线程优先级 八、线程常用方法     Thread类         构造方法             Thread()                       无参构造创建一个线程对象             Thread(String name)            创建一个线程对象并且设置线程名称             Thread(Runnable target)        根据Runnable对象创建线程             Thread(Runnable target, String name)    根据Runnable对象创建线程并且设置线程名称         常用方法             start()                  启动线程             sleep(long millis)       静态方法线程休眠有等待时间             interrupt()              中断线程的sleep             getState()               获取线程状态             stop()                   停止线程杀死线程已过时             setPriority(int newPriority) 设置线程的优先级最小是1最大10默认是5             getPriority()            获取线程的优先级最小是1最大10默认是5             setName(String name)     设置线程的名称             getName()                获取线程的名称             currentThread()          静态方法获取当前正在执行的线程             yield()                  静态方法当前线程把CPU资源让给优先级相同的其他线程其他线程包括本身             join()                   把多个线程连接在一起第一个线程执行完毕第二个线程才会被执行                                      把线程异步变成同步         常用属性             State                   静态属性枚举类型线程的状态             MAX_PRIORITY            静态属性线程最高优先级值为10             MIN_PRIORITY            静态属性线程最低优先级值为1             NORM_PRIORITY           静态属性线程默认优先级值为5     Runnable接口         常用方法             run()                 线程被CPU执行自动进入此方法此方法执行完毕线程死亡     Object类         常用方法             wait()                 线程无时间等待只能通过其他线程唤醒             wait(long timeout)     线程有时间等待可以通过其他线程唤醒或者指定时间已过时间单位毫秒             notify()               随机唤醒一个等待的线程             notifyAll()            唤醒所有的等待线程 九、线程同步     *****1、什么是线程不安全         多个线程操作同一个对象的同一个全局属性就会造成线程不安全。         线程不安全必须满足以下三个条件             a、必须是同一个对象             b、必须改变同一个全局属性             c、必须是多个线程操作     *****2、同步锁(synchronized)作用         在方法上增加synchronized关键字就是给此方法增加一把同步锁同步锁只允许一个线程进入此方法         其他线程在此方法外阻塞线程进入方法后这个方法就被锁住只有等待此线程执行完方法其他线程         才能进入此方法。         总结同一个时刻只允许一个线程进入方法 十、线程安全与不安全的对象     线程安全对象                   线程不安全对象     StringBuffer                   StringBuilder     HashTable                      HashMap     Vector                           ArrayList     线程安全对象对象创建比较费时消耗内存大执行效率低安全性高重量级对象     线程不安全对象对象创建比快消耗内存小执行效率高安全性低轻量级对象     局部变量建议使用线程不安全对象     全局变量建议使用线程安全对象 十一、线程的等待与恢复     wait()                 线程无时间等待只能通过其他线程唤醒     wait(long timeout)     线程有时间等待可以通过其他线程唤醒或者指定时间已过时间单位毫秒     notify()               随机唤醒一个等待的线程     notifyAll()            唤醒所有的等待线程     wait()方法不稳定必须结合同步锁使用 *****十二、sleep()与wait()区别     1、sleep()方法是Thread类的wait()是Object类     2、sleep()方法不需要结合同步锁wait()方法一定要结合同步锁     3、sleep()放弃CPU资源但不会释放同步锁        wait()放弃CPU资源并且释放同步锁     4、sleep()方法必须给出唤醒时间是有时间的等待也可以通过interrupt()方法强制唤醒并且会抛出异常        wait()方法给出唤醒时间是有时间的等待不给出唤醒时间是无时间等待可以使用notify()        或notifyAll()进行唤醒唤醒不会抛出异常 *****十三、单例模式     1、什么是单例模式         一个类只能有一个对象称为单例模式     2、单例模式的优缺点         优点只创建一个对象节约内存提高执行效率         缺点多线程操作单例会造成线程不安全     3、单例模式种类         1、懒汉模式         2、饿汉模式         3、枚举         4、双重检查         5、静态内部类         效率由高到底排列             静态内部类 饿汉模式 枚举 双重检查 懒汉模式 *****十四、synchronized使用注意事项     1、动态方法的 synchronized锁的是当前对象     2、静态方法的 synchronized锁的是当前类的字节码     3、sleep 让出 CPU 资源不会释放同步锁     4、wait 让出 CPU 资源并且释放同步锁     5、同步锁必须锁同样的东西才会有效     6、synchronized方法会互相影响线程进入一个对象的synchronized方法后        其他相同类型的synchronized方法无法进入大大的影响效率但可以保证线程安全 *****十五、线程的七种同步方式     1、同步方法使用synchronized关键字修饰方法     2、同步代码块使用synchronized关键字修饰语句块synchronized必须锁一个公共变量        这个公共变量必须是引用类型可以是当前对象或者类的字节码     3、特殊域变量使用volatile修饰变量能保证获取此变量的最新值保证变量的可见性        是一种无锁机制     4、重入锁JDK提供的第三方锁不受wait()方法的影响java.util.concurrent.locks.ReentrantLock        lock()     获取锁        unlock()   释放锁     5、线程变量(ThreadLocal)把全局变量写成局部变量交个ThreadLocal管理set方法赋值get方法取值        单例对象多例属性     6、变量的原子性实现线程同步把变量的赋值过程(读取、修改、写入)看成一个整体要么一起成功要么一起失败     7、阻塞队列队列是数据结构的一种特点是先进先出后进后出 *****十六、volatile与synchronized区别     变量赋值线程安全必须保证俩个方面一是变量的可见性二是变量的原子性     volatile关键字只保证了变量的可见性没有原子性他是一种无锁机制不能保证线程安全     但是不会造成线程阻塞是轻量级的     synchronized关键字保证了可见性和原子性它是一种有锁机制可以保证线程安全     会造成线程阻塞是重量级的     volatile只能修饰变量     synchronized修饰方法和代码块     volatile效率会比synchronized高 十七、守护线程     3、守护线程的创建         Thread daemon new Thread();         daemon.setDaemon(true);     4、什么是GC         GC是垃圾回收机制JDK启动时会启动一个守护线程轮询JVM中的对象发现对象超出作用域         没有被引用就会被回收使用的分析算法有可达性分析法、引用计数法、标记清除法等 十八、线程池pool     1、什么是线程池         多个线程绑定在一起统一管理形成线程池线程池统一管理线程的创建、使用、回收     2、线程池的分类         在JDK中提供了四个线程池通过java.util.concurrent.Executors类创建分别如下         a、可缓存的线程池任务超时会新增新的线程             ExecutorService service  Executors.newCachedThreadPool();         b、固定大小的线程池执行任务平均分配             ExecutorService service  Executors.newFixedThreadPool(5);         c、固定大小的线程池支持定时任务             ScheduledExecutorService service  Executors.newScheduledThreadPool(5);         d、单线程池             ExecutorService service Executors.newSingleThreadExecutor() 反射 一、什么是反射     在Java中通过类的字节码反射出类中的信息包括类、包、属性、方法、继承、实现、构造等     反射在JDK中java.lang与java.lang.reflect包下     作用代码的通用性与扩展性 二、Class类     1、什么是Class类         在反射中Class类代表一个类或接口其实就是字节码在Java数据类型中称为类类型     *****2、Java数据类型有哪些         a、基本数据类型(八种)         b、引用数据类型             Ⅰ、类             Ⅱ、接口             Ⅲ、类类型(Class)             Ⅳ、枚举             Ⅴ、注解             Ⅵ、数组     3、类类型获取方式         Class cla 类名.class         Class cla 对象名.getClass();         getClass()是Object类的方法         Class cla Class.forName(类的完整路径)     4、Class类的常用方法             getSimpleName()         获取类名             getName()               获取类的完整路径             newInstance             创建新的对象默认调用无参构造             getSuperclass()         获取父类的类类型             getInterfaces()         获取父接口的类类型 三、Filed类     1、什么是Filed类         在Java反射中Filed类代表类中的一个属性可以通过类类型获取     2、获取Field对象         cla.getDeclaredField(String name)       根据属性名获取本类中的单个属性         cla.getDeclaredFields()                 获取本类所有属性         cla.getField(String name)               根据属性名获取父类或父接口中的public属性         cla.getFields()                         获取父类或父接口中的所有public属性     3、Field类常用方法         getName()                               获取属性名         getType()                               获取属性数据类型         getModifiers()                          获取属性的访问修饰符         setAccessible(boolean flag)             设置变量是否能访问为true允许访问                                                 为false部允许访问默认为false(属性默认只能访问public修饰的)         set(Object obj,Object value)            设置属性值静态属性第一个参数为null         get(Object obj)                         获取属性值静态属性参数为null 四、Method类     1、什么是Method         在Java反射中Method类代表类中的一个方法可以通过类类型获取     2、获取Method对象         cla.getDeclaredMethod(String name,Class?...parameterTypes)             根据方法名与参数列表获取本类中指定方法         cla.getDeclaredMethod()             获取本类中的所有方法         cla.getMethod(String name,Class?...parameterTypes)             根据方法名与参数列表获取指定public方法包括本类、父类、父接口         cla.getMethod()             获取类中所有public方法包括本类、父类、父接口     3、Method类常用方法         getName()           获取方法名         getModifiers()      获取方法的修饰符         getReturnType()     获取返回值类型         getParameterCount() 获取参数列表个数         getParameterTypes() 获取参数列表类型         getExceptionTypes() 获取异常类型         setAccessible(boolean flag) 设置方法是否能访问为true允许访问                                     为false不允许访问默认false         invoke(Object obj,Object...args)    执行方法第一个参数调用对象                                                     第二个参数方法的参数值                                             执行静态方法第一个参数为null 五、Constructor类     1、什么是Constructor类         在Java反射中Constructor类表示类中的一个构造方法可以通过类类型获取     2、获取Constructor对象         cla.getConstructor(Class?...parameterTypes)   根据参数列表获取指定的构造方法         cla.getConstructors()                           获取类中的所有构造方法     3、Constructor类常用方法         getName()                       获取构造方法名         getModifiers()                  获取构方法的修饰符         getParameterCount()             获取参数列表的个数         getParameterTypes()             获取参数列表类型         getExceptionTypes()             获取异常类型         newInstance(Object...parameter) 调用指定的构造方法创建对象 六、java中T的使用     1、什么是T         T是一个关键字泛型与Object很像可以接收任何引用类型而且不需要强制装换         比Object强制转换成其他类型效率高     2、T的定义         a、定义在类名上整个类有效,静态方法不能使用             public class 类名T {             }         b、定义在方法上整个方法有效适用于任何方法定义T必须写在返回值之前             public T T 方法名{             } 七、克隆     1、java中变量的赋值都是栈内存赋值基本数据类型是值赋值引用数据类型是指针赋值        基本数据类型变量更改不会影响其他变量引用数据类型变量更改会影响其他赋值的变量         其中有九个引用数据类型是值赋值更改不会影响其他变量分别如下         八大基本数据类型的包装类 String     2、什么是对象克隆         对象的克隆只针对引用数据类型基本数据类型没有克隆对象克隆是重新分配一片新的内存空间         把对象的内容复制到新的内存空间克隆的对象不会相互影响是Java创建对象的一种方式     *****3、java创建对象的方式         a、new 构造         b、反序列化         c、反射         d、克隆     *****4、对象克隆方式         a、浅度克隆只会克隆对象本身对象的属性不会克隆         b、深度克隆会克隆对象本身对象属性也会克隆     5、对象克隆的步骤         a、克隆对象的类必须实现java.lang.Cloneable接口         b、重写clone()方法         c、在clone()方法中使用super关键字调用Object中的clone()方法返回自身对象 八、Object类中的方法     1、反射         getClass()              获取对象的类类型     2、克隆         clone()                 对象的克隆     3、线程         wait()                  线程等待         notify()                随机唤醒一个等待线程         notifyAll()             唤醒全部等待的线程     4、对象比较         equals()                比较俩个对象内容是否相同         hashCode()              获取对象的哈希码     5、GC         finalize()              对象回收之前最后调用的方法     6、String         toString()              对象字符串表示 九、注解     1、注解的作用         用来做配置信息可以替代xml配置文件     2、如何创建注解         Documented         Target         Retention         public interface 注解名{         }         创建注解时必须写上Documented、Target、Retention这三个注解         Documented             表示一个文档注解空注解         Target                 表示这个注解写在什么地方使用ElementType枚举来指定取值如下                                 TYPE                           作用在类上                                 FIELD                          作用在属性上                                 METHOD                         作用在方法上                                 PARAMETER                      作用在参数上                                 CONSTRUCTOR                    作用在构造方法上                                 ANNOTATION_TYPE                作用在注解上                                 PACKAGE                        作用在包上         Retention              表示注解的生命周期范围使用RetentionPolicy枚举来取值                                 SOURCE                          在源码中有效                                 CLASS                           在字节码中有效                                 RUNTIME                         在运行时有效
http://www.hkea.cn/news/14569693/

相关文章:

  • 做导购网站多少钱网络媒体设计是做什么的
  • 十大品牌网站微网站制作工具
  • 长春网站制作工具数据可视化网站
  • seo是指通过广州市口碑seo推广外包
  • 公司网站主页怎么做网站商城开发公司
  • 网站为契机建设校园数字化浏览器打不开wordpress
  • 台州做网站电话广东省建设厅网站查询
  • 成都网站建制作国外那些视频网站做的不错
  • 网站整站下载网站 方案
  • 嘉兴南湖区优秀营销型网站建设南昌企业网站排名优化
  • 网站建设的行业客户合肥建设局网站
  • 科技类公司网站怎么设计青岛网上房地产网官网
  • vue做网站的优缺点新建网站怎么保存
  • 机械设备 东莞网站建设发烧病例单子图片在线制作
  • 湛江企业自助建站系统百度惠生活小程序
  • 网站建设哪里最好接单子建站流程
  • 网站正在建设中的代码注册个人订阅号
  • 网站建设58关于静态网站开发相关新闻
  • 建设项目查询网站深圳市官网网站建设
  • 模拟网站开发wordpress收费资源下载
  • 网站开速度几秒国家开发投资集团有限公司
  • 湖南营销型网站建设磐石网络关于网站建设要花多少钱
  • 在自己电脑建设网站全网热搜关键词排行榜
  • 网站底部版权代码网站部署环境
  • 浙江均泰建设有限公司网站建筑工程网正保
  • 西安 做网站 499线上设计师接单
  • 初学者学做网站用什么软件湖南建设银行网站
  • 直播教育网站建设做游戏网站多少钱
  • 广告设计网站官网焦作做网站最专业的公司
  • 山东住房和城乡建设厅网站教育中心亿唐网不做网站做品牌案例分析