1 工具常用的快捷键
  1)
Eclipse和MyEclipse,IBM,2001,Java编写,开源,跨平台跨语言
  2)Alt+/快速内容提示(自己习惯定义)
  3)Ctrl+1快速修补错误
 
4)Syso+Alt+/快速显示System.out.println()语句 
  5)Ctrl+Shift+F快速排版正确代码
  6)Ctrl+Shift+X转大写,Ctrl+Shift+Y转小写
  7)Ctrl+Shift+O一次性导入多个包
  8)Ctrl+/加或减单行注释
  9)
Ctrl+Shift+/加多行注释,Ctrl+Shift+\取消多行注释
 10) 选中行+Alt+上下光标键移动行

2 使用断点调试程序,使用Junit测试程序
  1)通过断点方式调式程序的每个步骤  
  2)Step over查看代码粗粒度执行过程
  3)Step into查看代码细粒度执行过程
  4)@Before和@After会在@Test方法执行前后各执行一次
  5)@BeforeClass和@AfterClass是在类前后各执行一次
  
*3 静态导入和自动装拆箱
  1)静态导入可以导入对象,属性,方法,*
  2)语法:
import static java.lang.Math.PI;
import static java.lang.Math.pow;
import static java.lang.System.out;
  3)在JDK5中,编译器自动将基本类型和对应的包装类型,自动转换
 
例如:int<->Integer

*4 增强for循环(foreach)
  1)循环迭代数组/List/Set/Map集合
     List:
 List list = new ArrayList();
list.add("jack");
list.add("marry");
list.add("sisi");
for(String name : list){
System.out.print(name+"\t");
}
     Set:
  Set set = new HashSet();
set.add(100);
set.add(200);
set.add(300);
Iterator it = set.iterator();//Iterator为迭代器
while(it.hasNext()){
Integer key = it.next();
System.out.print(key+"\t");
}
  2)对Map集合的二种迭代方式:
a)keySet()
     
     Map map =
new HashMap(); 
 map.put(100,"jack"); 
 map.put(200,"marry"); 
 map.put(300,"sisi"); 
 Set set = map.keySet();
 Iterator it =
set.iterator(); 
 while(it.hasNext()){ 
 Integer key = it.next();
  String value =
map.get(key); 
  System.out.println(key+"-"+value); }
b)entrySet()
Map map = new HashMap(); 
 map.put(100,"jack"); 
 map.put(200,"marry"); 
 map.put(300,"sisi"); 
 Set> set = map.entrySet();
Iterator> it =
set.iterator();
 while(it.hasNext()){ 
Entry entry = it.next();
  Integer key =
entry.getKey();
  String value =
entry.getValue();
System.out.println(key+"<->"+value);}
 
3)在迭代集合时,一定要动态通知Iterator,而不要动态通知List集合,应选用ListIterator。
ListIterator it = list.listIterator();
*5 可变参数
  1)参数的个数不确定的
  2)可变参数只能放置在参数的最后,即最右边
  3)可变参数最少0个,最多1个
  4)编译器将可变参数当作一个一维数组来对待

*6 枚举
  1)当取值是某范围中的之一,这时可以使用枚举
  2)当向用户提示严重的错误时,尽可以使用抛异常的方式通知客户端
  3)可以对枚举在运行时验证 
  4)可以对枚举在编译时验证
  5)枚举值相当于实例变量 
 
6)枚举类与普通一致,可以继承或实现,如果有抽像方法的话,可以利用每个枚举值以匿名内部类的方式去实现
  7)枚举值可以用在switch()语句中
  8)枚举类常用方法如下:
a)name():显示枚举值
b)ordinal():显示枚举值对应的索引,从0开始
c)values():取得该枚举类对应的所有枚举值,是一个数组
d)valueOf():判段某个字符串是否属性枚举值之一

*7 反射
  1)解析一个类的各个部分,形成一个对象。
 
2)外存中的类,加载到内存中,会形成该对象的Class类,例如:String类,加载到内存中,就是StringClass对象。
  3)使用不同的方式,取得同一个类型的字节码对象Class是相同的。
     
类名.class Class c1 = String.class;
 
     
对象.getClass()   Class c2 =
new String().getClass();
     
  Class.forName() Class c3 =
Class.forName("java.lang.String");
  4)通过getXxxxx()只能取得该类public的类型
   
通过getDeclaredXxxxxx()可以取得该类非public的类型
   
设置非public类型的可访问性,默认为false,不可访问
     
c.setAccessible(true); 
  5)反射可以反射private/public的构造方法,字段,普通方法
  6)在反射main方法时,编译器会将数组自动拆分,取第一个值
    解决方案:
//m.invoke(null,(Object)new
String[]{"A","B","C","D"});,将数组当作对象,此时编译器不进行拆分
m.invoke(null,new Object[]{new
String[]{"A1","B1","C1","D1"}});在数组中嵌入另一个数组

 7.总步骤
   
①取得Person类对应的字节码对象Class
    Class clazz =
Class.forName("cn.itcast.java.reflect.Person");
    ②取得该类的唯一构造方法
     
//Constructor c  =
clazz.getConstructor(null);
   
 //Constructor c =
clazz.getConstructor(String.class,int.class);
     
Constructor c = clazz.getDeclaredConstructor(null);
   
 ③创建实例
//Person p = (Person) c.newInstance(null);
     
  //Person p = (Person)
c.newInstance("berry",10);
     ④
设置非public成员的访问性,默认false即不可访问性
     
   c.setAccessible(true);
   
 ⑤ 执行方法
 p.show();

JAVA-WEB总结01的更多相关文章

  1. 【jframe】Java Web应用程序框架 - 第01篇:Get Started

    jframe是什么? jframe是一个基于MIT协议开源的java web应用程序框架,汇聚了我们团队之于java web应用程序的核心架构思想以及大量最佳实践,并且持续在实际项目中不断完善优化. ...

  2. Java开发工程师(Web方向) - 01.Java Web开发入门 - 第6章.蜂巢

    第6章--蜂巢 蜂巢简介 网站开发完,就需要测试.部署.在服务器上运行. 网易蜂巢: 采用Docker容器化技术的云计算平台 https://c.163.com 容器管理:容器可被视作为云主机的服务器 ...

  3. Java开发工程师(Web方向) - 01.Java Web开发入门 - 第4章.Maven

    第4章--Maven Maven实战 Java Web应用的部署: 手动式: 编译:javac -cp $CATALINA_HOME/lib/servlet-api.jar web-inf/class ...

  4. Java开发工程师(Web方向) - 01.Java Web开发入门 - 第3章.Tomcat

    第3章--Tomcat Tomcat安装与运行 Tomcat:目前最常用的基于java的web应用服务器 本课程中所有的Java代码最终都需要部署到Tomcat中运行 Tomcat的配置文件是XML的 ...

  5. [原创]java WEB学习笔记01:javaWeb之tomcat的安装和配置

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化

    一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...

  7. Java Web开发中MVC设计模式简介

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

  8. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

  9. Java Web之JSP技术

    JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比htm ...

  10. java web(四)文件上传与下载

     一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...

随机推荐

  1. Auto Layout Guide----(一)-----Understanding Auto Layout

    Understanding Auto Layout 理解自动布局 Auto Layout dynamically calculates the size and position of all the ...

  2. g2o中setparameterid(0,0)方法

    其中两个参数的含义: 第二个参数是优化器内添加的参数的id.当你调用addEdge来添加这条边时,会根据第二个参数的id,把相应的参数地址给边,以后边内的成员函数,就根据第一个参数,拿到这个地址.

  3. 【机器学习】分类算法——Logistic回归

    一.LR分类器(Logistic Regression Classifier) 在分类情形下,经过学习后的LR分类器是一组权值w0,w1, -, wn,当测试样本的数据输入时,这组权值与测试数据按照线 ...

  4. IDEA上使用github上传代码

    这里的origin是表示我创建一个名为origin的仓库吗? 早已经存在了,我该怎么删除这个wenda呢? 将它修改为wenda1,如下: 点击项目,右击: 再点击项目,右击,选择commit: 问题 ...

  5. 2019计蒜之道初赛3 D. 阿里巴巴协助征战SARS(困难)(大数取余+欧拉降幂)

    阿里巴巴协助征战SARS(困难) 33.29% 1000ms 262144K   目前,SARS 病毒的研究在世界范围内进行,经科学家研究发现,该病毒及其变种的 DNA 的一条单链中,胞嘧啶.腺嘧啶均 ...

  6. iOS ipa包重签名

    背景:公司做游戏SDK的,提供SDK给第三方后,他们打包过来我们需要分发在不同的渠道,这个时候需要修改SDK的配置文件,ipa文件修改后是需要手机越狱或者ipa重签名才能安装成功的,所以研究了一下重签 ...

  7. 钉钉/支付宝小程序和微信小程序的区别及转换方案

    最近接到一个工作任务,是把钉钉小程序转微信小程序... 对,居然还有这种操作,之前只听过微信小程序转支付宝小程序的,钉钉转微信是什么鬼

  8. 虚拟机vmware11装Mac ox 10.8 解决windows8.1下unlocker202 vmxsmc.exe已停止工作的问题

    转载:http://tieba.baidu.com/p/3485956366 先说说故事吧,相信很多图钉都用过VMware Workstation这个软件.我系统是win8.1up1,之前用VMwar ...

  9. js实现页面的上滑下拉功能

    这两天做项目,用到了上滑和下拉的功能,主要是通过监听touchmove,touchstart,touchend三个事件去判断页面上滑状态还是下拉状态. 同时加一个知识点:有时在监听时会报错,这个错是这 ...

  10. 【微信小程序】开发实战 之 「数据缓存API」解析

    每个小程序都可以有自己的本地缓存,可以通过 数据缓存的API 实现对本地缓存进行 设置.获取和清理.本地缓存最大为10M.localStorage是永久存储的,但我们不建议将关键信息都放在localS ...