随笔分类 - 博客 基础知识
摘要:单例模式的特点 一个类只能有一个实例 自己创建这个实例 整个系统都要使用这个实例 单例模式的作用 单例模式主要保证在应用程序中一个类只有一个实例存在 在很多操作中,比如建立目录,数据库连接都需要用到这样的单线程操作,一些资源管理器常常设计成单例模式 单例模式的举例 window回收站 整个视窗系统中,回收站只能有一个实例,整个系统都使用这个唯一...
阅读全文
摘要:MVC和Struts Struts是一个MVC模式的框架,主要负责HTTP请求的接收和响应工作,Spring包含了一种轻量级的容器,把程序中的功能对象组织在一起,Hibernate负责数据的存取操作, Java Web开发中的两种普遍开发模式 模式1,模式1使用JSP+JavaBean技术将页面显示和业务逻辑分开,由JSP来显示页面,由JavaBean对象来保存数据和...
阅读全文
摘要:Web应用需要遵循哪些规范 主要包括目录结构,文件存放方式等方面的规范,比如Java Web程序的所有文件需要包含在一个文件夹中,这个文件夹就是我们的应用程序文件夹,在eclipse下就是建立一个工程的那个目录,应用程序文件夹下还需要包括一个WEB-INF文件夹,WEB-INF文件夹还需要包括Classes文件夹和lib文件夹,以及web.xml描述文件 第三方的jar文件...
阅读全文
摘要:JDBC的工作原理 JDBC是一种执行SQL的Java API,可以为多种数据库提供统一访问 JDBC由两部分组成,一部分是供程序员调用的API,另一部分是需要数据库厂商实现的SPI,也就是驱动程序 JDBC采用驱动模式的设计(什么是驱动模式?) JDBC操作数据库的编程步骤 1、注册驱动程序,也就是将驱动程序加载到Java虚拟机中,这里的驱动...
阅读全文
摘要:用TCP通信模型创建一个web服务器 主要用ServerSocket 一直监听,这里将其放到while循环中,在循环体内单开一个线程 public class MyWebServer { public static void main(String[] args) throws IOException { ServerSocket ss=new ServerSocket(8...
阅读全文
摘要:反射机制的原理 一般来说,如果想生成一个类的对象,那么运行这个程序的JVM会去确认这个类的class对象是否已经加载。如果尚未加载,那么JVM会根据类名查找.class文件,并将其载入,一旦这个类的class对象被载入内存,它就可以被用来创建这个类的的所有对象 另外如果遇到一个未知类型的引用,(JVM?)通常会采用强制类型转换的形式来得到开发者想要的类型引用,如果执行了错误的类型...
阅读全文
摘要:关于线程和进程 线程是进程的一个执行单元,它和进程一样拥有独立的执行控制,由操作系统负责调度,它们俩的区别可以用一句话概括之,那就是进程是程序的一次执行,而线程可以理解为进程执行的一段程序片段,也就是说它们是一种包含关系,线程不能独立运行,必须依存在进程之中 另外从资源分配的角度上看,进程是系统进行资源分配和调度的一个独立单位,而线程自己基本上不拥有系统资源,只拥有一点在运行中必...
阅读全文
摘要:创建文件 File file=new File("c:/test.txt"); if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } 得到目录下文件名列...
阅读全文
摘要:数组 Java中的数组是一个类 Java中数组作为一个特殊的类,也是不同于C++的一点表现,既然Java中的数组是一个类,那么字符串数组和整型数组的类名是一样的吗?答案是否定的,整型数组的类名是[I,而字符串数组的类名是[Ljava.lang.String。 存储数组中的元素 另外Java中数组...
阅读全文
摘要:Java的三种变量 静态变量,属于一个类,生命周期由该类来决定,用的时候最好用类名.静态变量名来用,而不是用实例对象.静态变量名来使用它 成员变量,属于一个对象,生命周期由该对象来决定 局部变量,定义在方法中的局部变量,属于一个方法,生命周期由该方法来决定;定义在一个代码块,比如if,for语句或...
阅读全文
摘要:String对象的两种创建方式 关于String有很多问题,首先关于String的创建,有两种创建方式 String x = "abc"; String z = new String("abc"); 那么这两种方式有什么不同呢 两者的不同 其实这两种方式创建的"abc"并不在一个地方,第一句的真...
阅读全文
摘要:引言 我们如果要用Java编写程序的话就必须安装JDK,那么JDK是什么,另外安装JDK的同时,会提示用户需要安装JRE,一般这两个就像孪生兄弟一样,装了JDK之后,如果我们进入到安装路径下,会发现除了JDK外,还有一个文件夹JRE,那么什么又是JRE,最后都说Java是跨平台语言,因为它的代码是...
阅读全文
摘要:总结 这两个东西一个很重要的区别是Hashtable是线程安全的,而HashMap是线程不安全的。 HashMap要实现同步则要通过额外的同步机制:一般Collections的一个静态方法得到解决:Map m = Collections.synchronizedMap(new HashMap(....
阅读全文
摘要:总结 首先它们的底层实现不同,Arraylist和vector都是基于数组实现的,而Linkedlist是基于链表实现的 另外虽然vector和arraylist都同样是基于数组实现的,但vector的源码中有很多synchronized方法,说明是线程安全的,同步的,而Arraylist是线程不...
阅读全文
摘要:引言 想起很早之前接触C++的时候,就直接用new替代了之前c的malloc,感觉一下子酸爽了很多,要用malloc写很长的代码,一个new就解决了,最近准备找工作的面试,又重新看到了这个,稍微整理一下并扩展说明了一下malloc、free、new、delete的区别 区别 首先很重要的一点是...
阅读全文

浙公网安备 33010602011771号