
java基础
文章平均质量分 64
青春微凉不离殇
这个作者很懒,什么都没留下…
展开
-
序列化和反序列化
序列化和反序列化概念:序列化:将对象转换为字节序列的过程反序列化:把字节序列恢复为对象的过程对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。简单案例:定义一个Person类,实现Serializable接口package com.javaTest;import java.i原创 2015-10-21 14:53:24 · 503 阅读 · 0 评论 -
JSP的生命周期
1、解析阶段:Servlet容器解析JSP文件的代码,如果有语法错误,就会向客户端返回错误信息2、翻译阶段:Servlet容器把JSP文件翻译成Servlet源文件3、编译阶段:Servlet容器编译Servlet源文件,生成Servlet类4、初始化阶段:加载与JSP对应的Servlet类,创建其实例,并调用它的初始化方法。5、运行时阶段:调用原创 2017-08-24 18:07:42 · 487 阅读 · 0 评论 -
JSP和Servlet有哪些相同点和不同点,它们的联系是什么?
相同点:它们本质上都是java类 不同点:1、JSP经编译后变成Servlet2、jsp更擅长表现于页面显示,Servlet更擅长于逻辑控制3、Servlet的应用逻辑是在java文件中,并且完全从表现层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。 联系:JSP是Servlet技术的扩展,本质上是Ser原创 2017-08-24 18:13:13 · 10949 阅读 · 1 评论 -
java语言中垃圾回收的优点和原理
1、java的一个重大特点就是引进了垃圾回收机制,它使得java程序员在编写程序的时候不用考虑内存管理。2、由于有了垃圾回收机制,java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。3、垃圾回收机制有效的防止内存泄露,有效的使用可以使用的内存。GC(Gabage Collection)工作原理:当创建对象时,GC就开始监视这个对象的地址、大小以及使用情况。通常,G原创 2017-08-24 18:18:14 · 3271 阅读 · 1 评论 -
线程--生产者消费者模式
如果对同一个对象多个线程进行操作容易造成死锁,为了解决这个问题我们用到了生产者消费者模式。生产者消费者问题,也称有限缓冲问题,是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程--即所谓的“生产者”和“消费者”--在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键是保证生产者不会在原创 2017-08-26 13:17:16 · 424 阅读 · 0 评论 -
"=="和equals()的深入解析
我们先来看一段代码:public static void main(String[] args){ String a="a"+"b"+1; String b="ab1"; System.out.println(a==b); }运行结果:true很多人可能会说对比两个对象不是用equals()吗?对于运行结果可能有人答对了,但是为什么会这样呢?要理解这个问题,我们首先了解什原创 2017-09-05 13:24:17 · 556 阅读 · 0 评论 -
java system.out.printf()的使用方法
最近遇到了system.out.printf("%d ",i),没有明白什么意思,查了下system.out.printf()的使用方法。代码如下:public static void main(String[] args) { // 定义一些变量,用来格式化输出。 double d = 123.4567; String原创 2017-09-05 21:17:40 · 1287 阅读 · 0 评论 -
写一个Java应用程序,从键盘输入一个整数,然后输出它的平方值立方值
这是一个跟输入/输出流有关的面试题。下面我们来分析怎么实现该功能。解析:在java中没有像C语言那样有一个专供接收从键盘输入值的scanf函数,所以一般的做法是从键盘输入一行字符,保存到字符串s中,再将字符组成的字符串s转换为整型数据返回。代码如下:import java.io.BufferedReader;import java.io.IOException;import jav原创 2017-08-31 16:40:04 · 17053 阅读 · 0 评论 -
8,64,256都是2的阶次方数,用java编写程序来判断一个数是不是2的阶次方数
该面试题考察的知识点是输入/输出流、二进制、位运算符,我们来分析下这道题怎么实现。解析:如果一个数是2的阶次方数,那么它的二进制数的首位一般是1,后面接若干个0。比如8就是1000,64是1000000.如果将这个数减1后,再与该数做和(&)运算,则应该全为0(例如:8与7,一个二进制数是1000,一个二进制数是111,它们做和后全为0)。所以((d-1)&(d))==0。注:位运算符与原创 2017-08-31 17:13:15 · 2222 阅读 · 1 评论 -
5种网络IO模型
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不转载 2017-08-31 17:23:11 · 456 阅读 · 0 评论 -
HTTP协议
HTTP简介HTTP协议(Hyper Text Transfer Protocol 超文本传输协议)是因特网上应用最广泛的一种网络传输协议。所有www文件都必须要遵守这个标准。HTTP基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。HTTP工作原理HTTP协议采用客户/服务器通信模式,服务器端为HTTP服务器,也叫WEB服务器;客户端为HTTP客户程序原创 2017-09-20 17:27:45 · 1011 阅读 · 0 评论 -
使用http请求,中文乱码问题--解决方法
最近写了一个客户端向服务器端发起http请求的功能,服务器端返回的数据中包含中文,奇怪的是中文个数是偶数个的时候,没有乱码,但是奇数个数时,最后一个汉字会编程问号?,以前也出现过类似问题,也解决了,但是没有记录,现在一下子想不到该怎么解决了代码是这样的:服务器端部分代码:[html] view plain copy print?转载 2017-08-24 18:04:34 · 23163 阅读 · 2 评论 -
批量修改文件夹名称
文件名保存错误,但文件夹中存放好多东西,不想重新下载,试想通过一个程序来实现批量修改文件夹名称的功能,没想到成功了。特分享以下程序供大家参考。import java.io.File;public class Rename { public void ChangeFileName(File file){ String dirPath = file.getAbsoluteP原创 2017-02-09 18:59:27 · 803 阅读 · 0 评论 -
Servlet技术(五)--防止页面被客户端缓存
许多浏览器为了能快速向用户展示所请求的页面,会把来自服务器端的页面存放在客户端的缓存中。如果用户多次请求访问服务器端的同一个网页,并且在客户端的缓存中已经存在该网页,那么浏览器只需要从缓存中获取该网页,而不需要请求访问远程服务器上的网页。浏览器端的缓存技术适用于保存服务器端的静态页面,以及不包含敏感数据的网页。以下情形中,服务器往往不希望页面被客户端缓存:1、网页包含随时会被更新的动态内容原创 2017-01-17 17:20:42 · 1115 阅读 · 0 评论 -
批量修改文件名称
批量修改本地路径下保存的文件的名字,将名字中的“.html”去掉java代码:import java.io.File;public class Rename { public void ChangeFileName(File file){ String dirPath = file.getAbsolutePath();//目录路径 if(fil原创 2015-10-13 17:28:08 · 499 阅读 · 0 评论 -
Java语言基础
Java语言基础:标识符、关键字和分隔符注释数据类型变量,常量Java语言,为各种变量、方法和类等起的名字称为标识符标识符的命名规则:1.标识符应以字母、下划线、美元符$开头,不能以数字开头;2.标识符可以由字母、下划线、美元符或数字组合而成。在实际编程时,在命名标识符时,应该使其在一定程度上反映它所表示的变量、常量、类名和对象的实际意义。3.Java标识符原创 2013-10-17 20:10:09 · 683 阅读 · 0 评论 -
java读取Excel表格中的数据
1、需求用java读取hello.xls表数据2、hello.xls表格数据3、java代码package com.test;import java.io.File;import jxl.*; public class ReadExcel{ public static void main(String[] args) { int i; Sh原创 2016-10-17 10:44:46 · 46274 阅读 · 16 评论 -
Servlet技术(二)
HttpServlet抽象类 HttpServlet类是GenericServlet类的子类。HttpServlet类为Servlet接口提供了与HTTP协议相关的通用实现,也就是说,HttpServlet对象适合运行在与客户端采用HTTP协议通信的Servlet容器或者Web服务器中。在开发JavaWeb应用时,自定义的Servlet类一般都扩展HttpServlet类。HTTP协议把客原创 2017-01-04 14:59:33 · 848 阅读 · 1 评论 -
Servlet技术(三)--JavaWeb与Servlet的生命周期
JavaWeb应用的生命周期 JavaWeb应用的生命周期是由Servlet容器来控制的。归纳起来,JavaWeb应用的生命周期包括3个阶段。1、启动阶段:加载Web应用的有关数据,创建ServletContext对象,对Filter(过滤器)和一些Servlet进行初始化2、运行时阶段:为客户端提供服务3、终止阶段:释放Web应用所占用的各种资源启动阶段Servlet容原创 2017-01-05 17:35:19 · 593 阅读 · 0 评论 -
Servlet技术(一)
近期用到了Servlet,发现这一块的知识记得不清楚了,在此总结下,以便以后查看Servlet是JavaWeb应用中的最核心的组件。Servlet运行在servlet容器中,能够为各种各样的用户请求提供相应的服务。Servlet可以轻而易举地完成以下任务1、 动态生成HTML文档2、 把请求转发给同一个Web应用中的其他Servlet组件3、 把请求转发给其他Web应用原创 2016-12-29 18:32:48 · 394 阅读 · 0 评论 -
ServletContext与Web应用范围
Servlet容器在启动一个Web应用时,会为它创建唯一的ServletContext对象。当Servlet容器终止一个Web应用时,就会销毁它的ServletContext对象。由此可见ServletContext对象与Web应用具有同样的生命周期。ServletContext接口提供了一组在Web应用范围内存取共享数据的方法。“范围”在这里有两层含义:1、表示一个特定时间段2、表示原创 2017-01-06 18:51:37 · 2075 阅读 · 0 评论 -
在Linux服务器上配置多个Tomcat服务
应公司需求,现在需要把正在运行的项目和开发项目所在的服务器分开,所以需要在一个linux系统中,搭建两个tomcat应用服务器,下面总结了一下在linux系统上搭建jdk和多个tomcat服务器的步骤(若已有一套tomcat可忽略前期tomcat服务器搭建,之间参考步骤六以后的方法):一、事前准备 1)确保linux并未安装tomcat 下载jdk与tomcat① jdk-6u18原创 2017-01-10 18:09:38 · 6520 阅读 · 1 评论 -
jdk1.8开发工具
工具地址链接:http://pan.baidu.com/s/1gfiemyR原创 2017-01-17 15:57:57 · 474 阅读 · 0 评论 -
Servlet技术(四)--Servlet的服务方法抛出异常
Public void service(ServletRequest req,ServletResponseres) throws ServletException,java.io.IOException以上service()方法声明抛出两个异常:1、ServletException:表示当Servlet进行常规操作时出现的异常2、IOException:表示当Servlet进行IO操原创 2017-01-17 17:18:33 · 9895 阅读 · 0 评论 -
java图片压缩--Thumbnailator
最近在java开发中遇到了图片处理的问题,我使用的是Thumbnailator。Thumbnailator是一个优秀的图片处理的开源java类库,使用起来很方便。图片原图:1、指定大小进行缩放public class PicUtil { public static void main(String[] args) { PicUtil.commpr原创 2017-11-20 16:15:26 · 5775 阅读 · 0 评论