1.Eclipse常见快捷键Ctrl+D:删除当前行Ctrl+Alt+下方向键:复制当前行到下一行Ctrl+Alt+上方向键:复制当前行到上一行Alt+下方向键:当前行与下一行交互位置Alt+上方向键:当前行与上一行交互位置Alt+左方向键:上一个编辑的页面Alt+右方向键:下一个编辑的页面Ctrl+Q:定位到最后编辑的地方Ctrl+L:定位在某行Ctrl+M:最大化当前的Edit或View(再按则反之)Ctrl+/:注释当前行,再按则取消注释Ctrl+O:快速显示OutlineCtrl+T:快速显示当前类的继承结构Ctrl+W:关闭当前EditerCtrl+K:参照选中的Word快速定位到下一个Ctrl+E:快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)Alt+Enter:显示当前选择的资源Shift+Enter:在当前行的下一行插入空行Shift+Ctrl+Enter:在当前行插入空行Ctrl+Shift+E:显示管理当前打开的所有的View管理器(可以选择关闭,激活等操作)Ctrl+Shift+F4:关闭所有打开的EditerCtrl+Shift+X:把当前选中的文本全部变为大写Ctrl+Shift+Y:把当前选中的文本全部变为小写Ctrl+Shift+F:格式化当前代码2.集合框架中个接口的特点(1)Collection接口是一组允许重复的对象。(2)Set接口继承Collection, 无序但不允许重复(3)List接口继承Collection, 有序但允许重复,并引入位置下标(4)Map接口既不继承Set也不继承Collection,是键值对3.Collection接口用于表示任何对象或元素组。想要尽可能已常规方式处理一组元素时,就使用这一接口。4.Iterator接口主要用来枚举集合中的元素5.  Iterator it = col.iterator();while (it.hasNext()){int a = (Interator)it.next();System.out.println("a = " + a);}静态方法中不可以有 this 关键出现。6.Set接口按照定义,Set接口继承Collection接口,而且它不允许集合中存在重复项。所有原始方法都是现成的,没有引入新方法。具体的Set实现类依赖添加的对象的equals()方法来检查等同性。7.泛型(generic type或者generics)是对Java语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时制定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。在定义泛型类或声明泛型类的变量时,使用尖括号来制定形式参数,称为类型形参,在调用时传递的实际类型称为类型实参。类型形参与类型实参之间的关系类似与形式方法参数与实际方法参数之间的关系,只是类型参数表示类型,而不是表示值。示例如下:Map m = new HashMap();m.put("key", "bag");String s = m.get("key");8.使用泛型的好处:类型安全消除强制类型转换潜在的性能收益9.命名泛型参数对于常见的泛型模式,推荐的名称是:K -- 键,比如Map键V -- 值,比如List和Set的内容,或者Map中的值E -- 异常类, 或者集合元素类型T -- 泛型注意:当一个变量被声明为泛型时,只能被实例变量和方法调用,而不能被静态变量和方法调用。原因很简单:参数化的泛型是一些实例。静态成员是被类的实例和参数化的类所共享的,所以静态成员不应该有类型参数和它们关联。10.FileInputStream和FileOutputStream要构造一个FileInputStream,所关联的文件必须是存在且可读的。如果你要构造一个FileOutputStream而输出的文件已经存在,则它将被覆盖。11.Pipe的InputStream和PipedOutputStream管道流用来在线程间进行通信。一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。要使管道流有用,必须有一个输入方和一个输出方。12.IO编程的基本模型1.构建源和目的地的连接2.从源输出流3.目的地接受流4.关闭连接13.Reader和Writer中最重要的版本是InputStreamReader和OutputStreamWriter。这些类用来作为字节流与Reader和Writer之间的接口。Reader和Writer都是字符(char)操作,而默认的都是字节(byte)操作。14.在InputStreamReader和OutputStreamWriter的结尾链接BufferedReader和BufferedWriter是一个好主意记住对BufferedWriter使用flush()方法。15.使用其它字符转换如果里需要从一个非本地(例如,从连接到一个不同类型的机器的网络连接读取)的字符编码读取输入,你可以像下面这个程序那样,使用显式的字符编码构造:ir = new InputStreamReader(System.in, "iso8859-1");对于已有的字符串,还可以这样进行编码转换:String s = new String(str.getBytes("ISO8859-1"), "GB2312");注意:(1)如果你通过网络连接读取字符,就应该使用这种形式。否则,你的程序会总是试图将所读取的字符当作本地表示来进行转换,而这并不总是正确的。ISO8859-1映射到ASCII的Latin-1编码模式。(2)用于表示中文的编码方式,常用的是“GB2312”或者“GBK”。16.类中没有实现Serializable的对象不能保存或回复它们的状态。当一个对象被序列化时,只有对象的数据被保存;方法和构造函数不属于序列化流。如果一个数据变量是一个对象,那么这个对象的数据成员也会被序列化。因为有些对象类所表示的数据在不断地改变,所以它们不会被序列化,如java.io.FileInputStream、java.io.FileOutputStream和java.lang.Thread等流。17.如果一个可序列化对象包含对某个不序列化元素的引用,那么整个序列化操作就会失败,而且会抛出一个NotSerializableException。如果不可序列化的应用被transient关键字进行了标记,那么对象仍可序列化,被标记的引用不进行序列化。18.File类是IO中文件操作最常用的类。File类提供了独立于平台的方法来操作由本地文件系统维护的文件。然而它不允许你存取文件的内容。File类有一个欺骗性的名字---通常会认为它对付的是一个文件,但事情并非如此。它既代表一个特定文件的名字,也代表目录内一系列文件的名字。19.线程和进程:(1)每个进程都有独立的代码和数据空间(进程上下文),进程切换的开销大(2)线程作为轻量的进程,同一线程可以共享代码和数据空间,但每个线程有独立的运行栈和程序计数器,因此线程切换的开销较小。(3)多进程---在操作系统中能同事运行多个任务(程序),也称多任务。(4)多线程---在同一应用程序中有多个顺序流同时执行。20.每个线程都有自己的优先级,通常优先级高的线程将优先于优先级低的线程执行。线程的优先级用数字来表示,范围从1到10,主线程的缺省优先级是5.可以使用Thread类的下述方法获得或设置线程对象的优先级:public final int getPriority();public final void setPriority(int newPriority);注意:优先级高的线程只是表示获得运行的机会比较高,并不是优先级高的就一定要比优先级低的先运行,还是会出现交叉执行的。所有可运行线程根据优先级保存在池中。当一个被阻塞的线程变成可运行时,它会被放回相应的可运行池。优先级高的非空池中的线程会得到处理机时间(被运行)21.在Java中,线程是抢占式的,但并不一定是分时的抢占式调度模型是指可能有多个线程是可运行的,但只有一个线程在实际运行。这个线程会一直运行,直至它不再是可运行的,或者另一个具有更高优先级的线程成为可运行。对于后面一种情形,低优先级线程被高优先级线程抢占了运行的机会。22.在下面集中情况下,当前线程会放弃CPU,进入阻塞状态:(1)线程调用了yield(), suspend()或sleep()方法主动放弃;(2)由于当前线程进行了I/O访问,外存读写,等待用户输入等操作,导致线程阻塞;(3)为等候一个条件变量,线程调用wait()方法;(4)抢先式系统下,有高优先级的线程参与调度;时间片方式下,当前时间片用完,有同优先级的线程参与调度。23.临界资源多个线程之间共享的数据称为共享资源或临界资源。24.互斥锁在Java语言中,为保证共享数据操作的完整性,引入了对象互斥锁的概念。每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻只能有一个线程访问该对象。25.关键字 synchronizedJava对象默认也是可以被多线程共用的,在需要时才启动“互斥”机制。当某个对象用 synchronized 修饰时,表明该对象已启动“互斥”机制,在任一时刻只能有一个线程访问。即使该线程出现阻塞,该对象的被锁定状态也不会解除,其他线程任不能访问该对象。26.synchronized 关键字的使用方式有两种(1)用在对象前面限制一段代码的执行(2)用在方法声明中,表示整个方法为同步方法。27.public void push(char c){synchronized(this){data[idx] = c;idx ++;}}当线程运行到 synchronized 语句,它检查作为参数传递的对象,并在继续执行之前试图从对象获得锁标志。28.避免死锁的一个通用的经验法则是:决定获取锁的次序丙始终遵照这个次序。按照与获取相反的次序释放锁。29.为了让线程对一个对象调用wait()或notify(),线程必须锁定那个特定的对象。也就是说,只能在它们被调用的实例的同步块内使用wait()和notify()30.wait()和sleep()最大的区别在于:wait()会释放对象锁,而sleep()不会释放对象锁。31.TCP--面向连接的可靠数据传输协议;TCP重发一切没有收到的数据,进行数据内容准确性检查并保证数据分组的正确顺序。TCP保证所传送的信息是正确的。32.IP协议是网际层的主要协议,支持网间互连的数据报通信。它提供的主要功能有:无连接数据报传送、数据报路由选择和差错控制。IP负责信息的实际传送。33.HTTP协议(超文本传输协议,HyperText Transfer Protocol)HTTP协议定义了信息如何被格式化、如何被传输,以及在各种命令下服务器和浏览器所采取的响应。默认端口号是80.34.URL(统一资源定位器,Uniform Resource Locator)URL用于表示Internet上资源的地址。URL一般由协议名、资源所在的主机名和资源名等部分组成。URL还可以包含端口号来指定与远端主机相连接的端口。如果不指定端口号,则使用默认值。例如http协议的默认端口号是80.显示指定端口号的URL形式如下:http://www.sun.com:8888/35.URI(通用资源标识,又叫统一资源标识符,Uniform Resource Identifier)用于唯一的标识元素或属性的数字或名称。URI包括统一资源名称(URN)和统一资源定位器(URL)。36.网络编程的四个基本步骤(1)创建socket(2)打开连接到socket的输入/输出流(3)按照一定的协议对socket进行读/写操作(4)关闭socket37.socket是指在一个特定编程模型下,进程间通信链路的端点。一个socket包括两个流:一个输入流和一个输出流。如果一个进程要通过网络向另一个进程发送数据,只需要简单地写入与socket相关联的输出流。一个进程通过从与socket相关联的输入流来读取另一个进程所写的数据。38.套接字类型的说明TCP和UDP扮演相同角色,但做法不同。两者都接受传输协议数据报并将其内容向前传送到表示层。TCP把消息分解成数据报(datagrams)并在接受端以正确的顺序把它们重新装配起来。TCP还处理对遗失数据报的重传请求。有了TCP,位于上层的层要担心的事情就少多了。UDP不提供装配和重传请求这些功能。位于上层的层必须确保消息是完整的并且是以正确的顺序装配的。一般而言,UDP强加给你的应用程序的性能开销更小,但只在应用程序不会突然交换大量数据并且不必装配大量数据报以完成一条消息的时候。否则,TCP才是最简单或许也是最高效的选择。40.TCP和UDP区别(1)TCP是面向连接的。UDP是非连接的(2)UDP开销比较小41.反射(Reflection)是java程序开发语言的特征之一,它允许运行中的Java程序对自身进行检查,或者说自审,并能直接操作程序的内部属性和方法。

转载于:https://www.cnblogs.com/Coder816/p/4164651.html

Java私塾中级note相关推荐

  1. java私塾课堂实录学习视频

    java私塾课堂实录学习视频   java私塾全套视频包括:初级.中级.高级和项目.   初级部分从零开始直到深入的研究,讲解很细,思路非常清晰!注重学习方法.设计思路方面的引导,有利于学员的长期发展 ...

  2. java私塾 设计模式 视频_[章节]Java Web开发理论部分视频教程 之 04 mvc设计模式详解视频教程 - 我的学习中心 - 私塾在线 - 只做精品视频课程服务...

    第01节课:进行整体课程概览:复习事件机制:复习表现层的功能:复习表现层的开发 第02节课:Web应用的基础知识,包括:Internet.Http.IP.Port.MIME规范.Web客户端和服务端. ...

  3. java私塾 java篇_Java私塾跟我学系列——JAVA篇 五、

    五:Java如何做到让机器理解我们想要做的东西 用一个图来描述这个过程会比较容易理解: 1:编写代码 首先把我们想要计算机做的事情,通过Java表达出来,写成Java文件,这个过程就是 编写代码的过程 ...

  4. Java私塾跟我学系列——JAVA篇 第四章Java类和对象

    教学目标: i面向对象基础 i掌握对象的三大特性 i掌握Java类的构建 i掌握如何使用Java类 i理解引用类型 i理解按值传递和按引用传递 i深入理解变量 i掌握包装类 i理解类型转换 i理解Ja ...

  5. Java私塾:研磨设计模式 之 装饰模式(Decorator)3

    22.3  模式讲解 22.3.1  认识装饰模式 (1)模式功能 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象增加功能,相当于是改变了对象的外观.当装饰过后,从外部使用系统的角度看 ...

  6. 韩顺平java笔记--中级

    Java中级 1.static 1.1类变量(静态变量) 1.2类方法(静态方法) 1.3静态方法何用? 2.main 3. 代码块(构造器的一种补充机制) 3.1 static代码块与无修饰符代码块 ...

  7. java课后习题_【整理】java私塾教程课后习题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 第二章 1:叙述标识符的定义规则,指出下面的标识符中那些是不正确的,并说明理由 here , _there, this, it, 2to1, _it 2: ...

  8. Java私塾的一些基础练习题(一)

    写了几个,还有几个还在研究中. 14: 将1 到1000 之间的奇数打印出来. public class OddNumber {public static void main(String[] arg ...

  9. 全球最火的程序员学习路线!java私塾初级模拟银源代码

    一.背景 我们日常在电商网站购物时经常会遇到一些高并发的场景,例如电商 App 上经常出现的秒杀活动.限量优惠券抢购,还有我们去哪儿网的火车票抢票系统等,这些场景有一个共同特点就是访问量激增,虽然在系 ...

  10. java中级招聘要求怎么写_招聘JAVA初级中级程序员!

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

最新文章

  1. 学术圈又曝出新瓜了?与院士共任通讯作者,网友:真“飞升疾走”
  2. git的一些常用命令
  3. gcc选项-g与-rdynamic的异同
  4. 网络编程中的锁与队列
  5. hdu4994 博弈,按顺序拿球
  6. 201571030335/201571030320《小学四则运算练习软件软件需求说明》结对项目报告
  7. C 语言运算符优先级
  8. 算法六之直接插入排序
  9. ftp服务器收集文件,ftp服务器收集文件
  10. ADMT3.2域迁移之Server2003至Server2012系列(五)添加域管理员权限
  11. ionic4 ngFor中使用ngIf
  12. 函数不可以直接调用其他函数内部定义的变量_JavaScript(4) 函数
  13. 开机需要手动启动无线
  14. 华为 hg8120c 超级密码获取过程
  15. BUUCTF:sqltest
  16. 购买计算机英语情景对话,英语情景对话之购物英语:买相机
  17. Dart | 使用 Flutter 制作一个像 SIRI 那样的语音机器人
  18. php转调页面,如何转调
  19. 在setTimeout或者ajax等异步方法中回调函数的写法与调用
  20. 剑指 Offer 58 - II. 左旋转字符串

热门文章

  1. 超能竞速大开眼界,iQOO 5系列正式发布
  2. 《模式识别与机器学习》 简称 PRML 开源了
  3. 微信小程序引入阿里矢量图标库
  4. C++ QT学习之路----VS2017+QT环境搭建
  5. 电话机器人源码可以低成本高效率为OEM代理前景保驾护航
  6. 基于微信小程序点餐系统的设计与实现
  7. Java后端开发常用规范
  8. MarkDown编辑器实用语法、数学公式汇总
  9. CMake macOS安装
  10. matlab调用refprop9.0,Matlab调用REFPROP完全说明