
JavaEE-知识点详解(附带大量练习题)
文章平均质量分 86
JavaSE、各大框架。其中JavaSE是我们学习Java最基础,最重要的一部分,在这里我将给出我的学习经验,希望可以给大家带来些许帮助。其中包含了:基础知识、面向对象、高级特性、枚举&注解、异常处理、Java常用类、Java集合、泛型、IO流、多线程、反射机制和网络编程;
OnlyLove_longshao
做好自己,一切美好便会随之而来!
展开
-
SpringMVC之ModelAttribute注解
ModelAttribute注解 这个注解可以批注在方法上,也可以放在属性前工作原理: 1)、在某个方法上标注ModelAttribute注解,那么这个方法在目标方法执行前会优先执行 2)、我们在ModelAttribute注解标注的方法入参中传入一个Map, 这个map最终的类型BindingAwareModelMap,就是目标方法用的隐含模型的类型 3)原创 2017-12-01 15:48:20 · 731 阅读 · 0 评论 -
SpringMVC从request中获取参数的原理
servlet原生:将查出的数据放在request、session、application域中测试代码:@RequestMapping("/testApi")public void testApi(HttpServletRequest request, HttpServletResponse response) { System.out.println(request.getP原创 2017-09-27 19:34:20 · 3394 阅读 · 2 评论 -
SpingMVC源码探究 之 解析HttpServletRequest参数
我们来探究SpingMVC是如何解析方法入参的。首先设置的handler如下:在执行方法处、及DispatherServlet的doDispath()方法设置断点开始执行方法@Controllerpublic class TestHandler { @RequestMapping("/testParam1") public String testParam1(String usern原创 2017-05-18 09:58:48 · 2115 阅读 · 3 评论 -
理解多线程 之 40问题
前言个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因转载 2017-05-17 10:49:20 · 754 阅读 · 0 评论 -
SpringMVC一次请求过程源码分析
今天来探索SpringMVC一次请求过程的源码,首先需要找到程序运行的类及主要方法:我们使用StringMVC首先需要在web.xml中设置一个前端控制器来处理请求,这个前端控制器是:org.springframework.web.servlet.DispatcherServlet那么我们程序运行的入口就在这里。从这里可以看出前端控制器是一个Servlet,原创 2016-12-15 22:21:51 · 2149 阅读 · 1 评论 -
SSM框架 之 Spring-AOP(面向切面编程)
1AOP概述AOP(Aspect-Oriented Programming,面向切面编程):是一种新的方法论,是对传统 OOP(Object-Oriented Programming,面向对象编程)的补充。两种编程思想。是对面向对象编程的一种补充。面向切面编程:是指在程序运行期间将某段代码,动态的切入到某个类的指定方法的指定位置的这种编程思想叫做面向切面编程。AOP编程操作的主要对原创 2016-12-10 20:48:05 · 18363 阅读 · 2 评论 -
Spring源码探究 之 IOC容器的实质
IOC容器初始化时,创建所有单例的bean,今天深入探索IOC容器的实质:IOC容器初始化即创建ClassPathXmlApplicationContext对象,如下:ApplicationContext ioc = new ClassPathXmlApplicationContex("applicationContext.xml");其内部的创建代码如下:ClassPathX原创 2016-12-10 19:44:58 · 1391 阅读 · 0 评论 -
SSM框架 之 Spring-IOC
一、Spring概述1、Spring概述①Spring是一个开源框架②Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。③Spring是一个IOC(DI)和AOP容器框架。④Spring的优良特性[1]非侵入式:基原创 2016-11-12 21:58:18 · 1603 阅读 · 0 评论 -
JavaWeb初级学习 之 Servlet
1.Servlet中的两个接口ServletConfig代表:Servlet的配置信息作用:1)获取Servlet的友好名称 String servletName = config.getServletName();2)获取Servlet的初始化参数 前提是已经在web.xml文件中进行了配置 ServletConfServlet com.atguigu.ser原创 2016-11-10 23:01:30 · 1753 阅读 · 0 评论 -
Tomcat的使用(详细流程)
1、JavaWeb概念Java web,是用java技术来解决相关web互联网领域的技术的总称。web包括:web服务器和web客户端两部分。java在最早web客户端的应用有java applet程序,不过这种技术在很久之前就已经被淘汰了。java在服务器端的应用非常丰富,比如Servlet,jsp和第三方框架等等。java技术对web领域的发展注入了强大的动力简单的说,就是原创 2016-11-06 23:49:56 · 97628 阅读 · 30 评论 -
实战项目助你掌握JavaSE知识
目标模拟实现一个基于文本界面的《团队人员调度软件》熟悉Java面向对象的高级特性,进一步掌握编程技巧和调试技巧主要涉及以下知识点:类的继承和多态对象的关联static和final修饰符特殊类的使用异常处理需求说明模拟实现基于文本界面的《团队人员调度软件》。该软件实现以下功能:软件启动时,根据给定的数据创建公司部分成员列表(数组)根据菜单提示,原创 2016-09-15 23:47:43 · 10204 阅读 · 10 评论 -
java学习之路 之 网络编程-练习题
package com.atguigu.javase.net;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.ServerSocket;import原创 2016-09-04 17:43:41 · 3427 阅读 · 0 评论 -
java学习之路 之 网络编程
网络编程概述Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。Java提供的网络类库,可以实现无缝的网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。计算机网络: 把分布在不同地理区域的计算机原创 2016-09-04 17:17:03 · 992 阅读 · 0 评论 -
java学习之路 之 反射机制综合练习题、动态代理实例
在上一篇博文中我们已经进行了反射机制的习题练习,这里我们在做一个考察比较全面的练习,如下:写一个类ReflectUtil类, 类中写一个静态方法Object methodInvoker(String classMethd) 此方法为无参方法如,我们传入的实参字符串为:classMethod "java.lang.String.length()"就可以通过反射执行String类中的lengt原创 2016-09-04 16:43:52 · 2495 阅读 · 0 评论 -
java学习之路 之 反射机制-练习题
反射机制练习题前面我们对反射机制的理论知识进行了学习,现在我们来实际应用,从而更加了解它。首先我们先创建Person类,和Teacher类继承Person类(包含注解),供我们反射使用,具体如下:package com.atguigu.javase.reflect;import java.io.Serializable;import java.lang.annotation.Rete原创 2016-09-01 23:48:57 · 3757 阅读 · 0 评论 -
java学习之路 之 反射机制(动态代理)
理解Class类并实例化Class类对象Class类在Object类中定义了以下的方法,此方法将所有子类继承:public final Class getClass()以上的方法返回值的类型是一个Class类,此类是Java反射的源头,实际上所谓反射从程序的运行结果来看也是很好理解,即:可以通过对象反射求出类的名称正常方式: 引入需要的"包类"名称--->通过new实例化-原创 2016-08-31 23:20:10 · 1491 阅读 · 0 评论 -
java学习之路 之 多线程练习题
package com.atguigu.javase.thread;/** * 创建并启动一个线程的方法 * 1) 实现接口的方式 * 1) 写一个具体类, 实现Runnable接口, 并实现其中的run方法,这个run方法就是线程的入口方法 * 2) 创建这个类的对象, 并以这个对象为实参, 创建Thread类的对象 * 3) 调用Thread对象的start原创 2016-08-28 10:37:51 · 6062 阅读 · 0 评论 -
java学习之路 之 多线程
基本概念:程序 - 进程 - 线程程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程(process)是程序的一次执行过程,或是正在运行的一个程序。动态过程:有它自身的产生、存在和消亡的过程。如:运行中的QQ,运行中的MP3播放器程序是静态的,进程是动态的线程(thread),进程可进一步细化为线程,是一个程序内部的一条执原创 2016-08-26 23:47:26 · 1180 阅读 · 0 评论 -
java学习之路 之 IO流-练习题
package com.atguigu.javae.io;import java.io.FileReader;import java.io.IOException;import org.junit.Test;public class IOTest { @Test public void testReader() { // 1) 声明流对象引用,并赋值为null; Fi原创 2016-08-25 21:56:54 · 2460 阅读 · 0 评论 -
java学习之路 之 IO流
Java IO原理IO流用来处理设备之间的数据传输。Java程序中,对于数据的输入/输出操作以”流(stream)” 的方式进行。是指从源节点到目标节点的数据流动源节点和目标节点可以是文件、网络、内存、键盘、显示器等等。java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。输入input:读取外部数据(磁盘、光盘等存储设备的数据原创 2016-08-25 21:03:35 · 2922 阅读 · 0 评论 -
java学习之路 之 泛型及练习题
泛型为什么要有泛型(Generic)?1. 解决元素存储的安全性问题2. 解决获取数据元素时,需要类型强转的问题泛型,JDK1.5新加入的,解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化时只要指定好需要的具体的类型即可。 Java泛型可以保证如果程序在编译时没有发出警告,原创 2016-08-21 23:26:27 · 7330 阅读 · 1 评论 -
java学习之路 之 Java集合练习题
import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.ArrayList;import java.util.HashSet;import java.util.Set;import org.junit.Test;/** * 集合 : 解决批量的对象的原创 2016-08-21 23:17:38 · 8495 阅读 · 0 评论 -
java学习之路 之 Java集合框架
Java集合框架一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用数组存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。Java 集合类可以用于存储数量不等的多个对象。可以将它简单地看作是一个可变长度的Object数组。Java 集合类可以用于存储数量不等的多个对象。可以将它简单地原创 2016-08-21 23:10:55 · 1589 阅读 · 2 评论 -
java学习之路 之 Java常用类-Data类、Math类、BigInteger类、BigDecimai类 及 练习题
日期类:java.lang.System类System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。此方法适于计算时间差。计算世界时间的主要标准有:UTC(Universal Time Coordinated)GMT(Greenwich Mean Time)C原创 2016-08-20 10:54:27 · 2236 阅读 · 1 评论 -
java学习之路 之 Java常用类-StringBuffer类、StringBuilder类 及 练习题
import org.junit.Test;StringBuffer类:java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删。很多方法与String相同,但StingBuffer是可变长度的。StringBuffer是一个容器。StringBuffer类有三个构造方法:1.StringBuffer()初始容量为16的字符串缓冲区原创 2016-08-20 10:44:22 · 2121 阅读 · 0 评论 -
java学习之路 之 Java常用类-字符串(String)类及练习题
字符串;String类:构造字符串对象 常量对象:字符串常量对象是用双引号括起的字符序列。 例如:"你好"、"12.97"、"boy"等。字符串的字符使用Unicode字符编码,一个字符占两个字节String类较常用构造方法:String s1 = new String();String s2 = new String(String original)原创 2016-08-20 10:39:10 · 4563 阅读 · 0 评论 -
java学习之路 之 Java常用类-包装类(Wrapper)及练习题
针对八种基本定义相应的引用类型—包装类(封装类)有了类的特点,就可以调用类中的方法。基本数据类型包装成包装类的实例 ---装箱通过包装类的构造器实现:Integer t1 = new Integer(i); //手工装箱Integer t2 = 500; //自动装箱 还可以通过字符串参数构造包装类对象:Float f = new Floa原创 2016-08-20 10:31:31 · 2499 阅读 · 0 评论 -
java学习之路 之 异常处理练习题
/** * 异常的分类 : * 1) 按照严重程度 * 1) Error 严重错误 * 2) Exception 普通异常 * 2) 按照处理要求来分 * 1) 受检异常 : 在程序中必须接受检查和处理的异常 * Exception及其子类(RuntimeException及其子类除外) * 2) 非受检异常 : 在程序中不是必须接受检查和处理的异常 *原创 2016-08-16 23:39:12 · 4257 阅读 · 0 评论 -
java学习之路 之 异常处理
异常处理:在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)Java程序在执行过程中所发生的异常事件可分为两类:原创 2016-08-16 23:34:35 · 1271 阅读 · 0 评论 -
java学习之路 之 枚举类&注解-注解(Annotation)及练习题
注解 (Annotation) 概述从 JDK 5.0 开始, Java 增加了对元数据(MetaData) 的支持, 也就是 Annotation(注解)Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理. 通过使用 Annotation, 程序员可以在不改变原有逻辑的情况下, 在源文件中嵌入一些补充信息.Annotat原创 2016-08-16 23:21:51 · 1504 阅读 · 0 评论 -
java学习之路 之 枚举&注解-枚举类及练习题
枚举类JDK1.5之前需要自定义枚举类JDK 1.5 新增的 enum 关键字用于定义枚举类若枚举只有一个成员, 则可以作为一种单例模式的实现方式枚举类的属性:枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰枚举类的使用 private final 修饰的属性应该在构造器中为其赋值若枚举类显式的定义了带参数的构造器, 则在列出枚举值时原创 2016-08-16 23:16:54 · 2744 阅读 · 0 评论 -
java学习之路 之 高级类特性2-类的成员之五:内部类
类的成员之五:内部类 在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。 Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称。 Inner class的名字不能与包含它的类名相同;Inner class可以使用外部类的私有数据,因为它是外部类的成员,同一个类的成员之间可相互访问。而外部类要访问内部类中的成员需要:内部类原创 2016-08-14 14:40:30 · 833 阅读 · 0 评论 -
java学习之路 之 高级类特性2-接口(interface)-练习题
// 接口通常用形容词来描述 , 用以描述一种能力.public interface Flyer { // 接口 : 是对事物行为的抽象定义, 接口中只允许抽象方法,和全局常量 public static final int num = 10; public void takeOff(); public abstract void fly(); public void lan原创 2016-08-14 14:34:40 · 2573 阅读 · 0 评论 -
java学习之路 之 高级类特性-抽象类-练习题
/** 具体类 : 对现实世界事物的抽象定义 抽象类 : 对某一类型的不同种事物的抽象定义*///编写抽象类Pet, 属性:名字,年龄,体重; 抽象方法speak,eatpublic abstract class Pet { // 可以包含属性, 构造器,普通方法, 抽象方法 private String name; private int age;原创 2016-08-14 14:28:42 · 1840 阅读 · 0 评论 -
java学习之路 之 高级类特性2-抽象类、接口
抽象类(abstract class) 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象, 以至于它没有具体的实例,这样的类就可以声明为抽象类。抽象类与具体类 具体类 — 对现实世界一种实体的抽象定义。 抽象类 — 对现实世界一种类型的多种实体的统一抽象定义。 例原创 2016-08-14 14:23:04 · 1056 阅读 · 0 评论 -
java学习之路 之 高级类特性2-关键字static、final、动态语句块结合的练习题
class Employee { static { // 随着的类的加载而执行, 且执行一次, 由JVM自动执行, 相当于类构造器 System.out.println("static{}...静态语句块"); //return; company = "BAIDU"; } private static String company = "baidu"; // 静态属性,原创 2016-08-08 21:49:35 · 2200 阅读 · 0 评论 -
java学习之路 之 高级类特性2-类的成员之四:初始化块、关键字final
类的成员之四:初始化块初始化块(代码块)作用:对Java对象进行初始化程序的执行顺序:1) 声明成员变量的默认值 2) 显式初始化、多个初始化块依次被执行(同级别下按先后顺序执行)3) 构造器再对成员进行赋值操作一个类中初始化块若有修饰符,则只能被static修饰,称为静态代码块(static block ),当类被载入时,类属性的声明和静态代码块先后顺序被原创 2016-08-08 21:44:29 · 992 阅读 · 0 评论 -
java学习之路 之 高级类特性2-关键字static、类变量、类方法、单例模式
关键字:static 类变量、类方法单例(Singleton)设计模式关键字static:使用范围:在Java类中,可用static修饰属性、方法、代码块、内部类被修饰后的成员具备以下特点:随着类的加载而加载优先于对象存在修饰的成员,被所有对象所共享访问权限允许时,可不创建对象,直接被类调用类属性、类方法的设计思想:类属性作为该类各个对象之间共享的变量原创 2016-08-08 21:32:21 · 1146 阅读 · 0 评论 -
java学习之路 之 高级类特性1-Object类 及 练习题
Object 类Object类是所有Java类的根父类如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类 public class Person {... } 等价于:public class Person extends Object {...}例:method(Object obj){…}//可以接收任何类作为其参数原创 2016-08-07 21:49:29 · 1628 阅读 · 0 评论 -
java学习之路 之 高级类特性1-多态、重写-练习题2
public class Computer { private double cpu; private int memory; private int disk; private double price; public Computer() {} public Computer(double cpu, int memory, int disk, double price)原创 2016-08-07 21:44:09 · 1193 阅读 · 0 评论