我的java笔记

来源:互联网 发布:ipad浏览器 知乎 编辑:程序博客网 时间:2024/05/16 17:28
一.解决中文乱码问题
思路1: 自己配置过滤器
步骤: (1) 开发一个Filter
(2) 在web.xml中配置过滤器
<!-- 配置自己写的过滤器 -->
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>com.hsp.web.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

思路2:使用spring框架提供的处理中文乱码的过滤器
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>

</filter-mapping>

二..

1.你对多态的理解?
答:同一对象在不同情况下的多种状态,它包含重载和重写。
2.spring的作用?
答:它是一个轻量级的实现IOC(控制反转)和AOP(面向切面编程)的框架。
3.Ajax的原理?
答:Ajax实现了与web服务的异步通讯,通过javaScript对象XMLHttpRequest向服务器提出请求并处理响应,当web服务响应时,通过javaScript回调函数即时响应,不用刷新整个页面,使用户有不间断的体验。
4.怎莫测试网络是否联通?
答:Dos命令中输入 ping 127.0.0.1
5.说一下你的项目流程?你负责的模块的实现?
答:项目流程:
      1.需求收集,2.需求分析,3.书写代码,4.测试,5.上线,6.测试并维护。
  负责模块:
6.你对接口的理解?
答:一堆静态常量或未实现的方法的集合,要求实现接口的类必须实现接口的所有方法,如果类中还有未实现的方法,则这个类是一个抽象类。
7.JQery操作DIV的展现?
答:通过hidden和show控制div的隐藏和展现。
8.Html的Freamset
答:Freamset可以用来设计页面框架,实现页面之间的链接。
9.抽象类和接口的区别?
答:①抽象类的关键字是Abstract,接口的关键字是interface;
  ②抽象类中可以包含普通方法和抽象方法,以及各种属性,而接口中只能包含静态常量或者未实现的方法;
  ③使用抽象类的方法要继承此类(extends),而使用接口的方法要实现接口(implements);
  ④抽象类的子类只能有一个父类,但是它可以实现多个接口,接口要比抽象类更加灵活。
10.String和StringBuffer的区别?
答:String 类提供了数值不可改变的操纵字符串的方法,如:length(),charat(下标),indexof(string str)等;
    StringBuffer提供了字符数值可变的操纵字符串的方法,它可以动态的构造字符串。
11.A类,B类(不是接口),C要使用A,B的方法怎默写?
答:public class A{
      public void a(){
system.out.println("a");
          }
     }
    public class B{
      public void b(){
system.out.println("b");
          }
     }
    public void C{
public A a=new A();
public B b=new B();

public void c(){

a.a();
b.b();
}




    }
12.写一下数据库链接原理?
答:一、添加数据库驱动jar包;
    二、准备四大参数:
1.驱动名称(),
2.jdbc的url(jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mydb),
3.数据库用户名(sa),
4.数据库密码(t234);
    三、注册驱动;
    四、获得数据库链接对象Connection;
    五、获得数据库执行对象Statement;
    六、执行sql;
    七、释放资源。

三.栈内存和堆内存

栈内存--
存储的都是局部变量, 而且变量所属的作用域一旦结束,该变量就自动释放。
堆内存--
存储是数组和对象(其实数组就是对象) 凡是new建立在堆中。
特点:
1)每一个实体都有首地址值。
2)堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同。整数是0,小数0.0或者0.0f,
   boolean false char '\u0000'
3)垃圾回收机制。

四.线程

**线程:是指程序的一个指令执行序列,WIN32 平台支持多线程程序,允许程序中存在多个线程。 在单 CPU 系  统中,系统把 CPU 的时间片按照调度算法分配给各个线程,因此各线程实际上是分时执行的,在多 CPU 的      Windows NT 系统中, 同一个程序的不同线程可以被分配到不同的 CPU 上去执行。由于一个程序的各线程     是在相同的地址空间运行的,因此设及到了如何共享内存, 如何通信等问题,这样便需要处理各线程之间         的同步问题,这是多线程编程中的一个难点。

**进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: 

线程的划分尺度小于进程,使得多线程程序的并发性搞。 

另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 

线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 

从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。 

进程(Process)是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。以Unix操作系统为例,进程是Unix操作系统环境中的基本成分、是系统资源分配的基本单位。Unix操作系统中完成的几乎所有用户管理和资源分配等工作都是通过操作系统对应用程序进程的控制来实现的。 

**线程的基本概念、线程的基本状态以及状态之间的关系:
线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。Java中的线程有四种状态分别是:运行、就绪、挂起、结束。 

***java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用:
有两种实现方法,分别是继承Thread类与实现Runnable接口用synchronized关键字修饰同步方法反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被“挂起”的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。


五.事务

事物(transaction):用户定义的一个操作序列,它要么全部做,要么全部不做,是一个不可分割的工作单位            。如果某一事物成功,则该事物中修改的所有数据都会提交,并成为数据库中的永久存在;如             果事物遇到错误且必须取消或回滚,那么它修改的数据将被清除。
事物的特性(ACID):原子性;一致性;隔离性;持久性。





原创粉丝点击