JAVA基础知识
2015-12-02 22:56
183 查看
1.JAVA:write once,run anywhere 2.JAVA优势:跨平台、安全、完全面向对象、简单、健壮 3.java源文件-(编译器javac.exe编译)-java平台可以执行的字节码文件-(JVM java.exe解释)-本地机器码-机器运行(编译、解释的过程) 过程:编译源文件.java-java编译生成.class文件-java运行.class文件 4.java有51个关键字 数据类型(10):byte、short、int、long、float、double、char、class、interface、Boolean 流程控制(14):if、else、do、while、for、switch、case、default、try、catch、finally、break、continue、return 修饰符(12):private、protected、public、void、static、abstract、final、strictfp、transient、synchronized、volatile、native 动作(10):this、new、import、package、extends、implements、super、throws、throw、instanceof 保留字(5):true、false、goto、null、const 5.使用final定义符号常量:final double PI = 3.14;(常量必须有值,不能被重写、覆盖) 6.数据类型:基本数据类型+引用数据类型 基本数据类型:数值型(byte、short、int、long、float、double)+字符型(char)+布尔型(boolean) 引用数据类型:类(class)+接口(interface)+数组+string 7.继承条件下构造方法的调用规则: a.如果子类的构造方法中没有通过super显示调用父类的有参构造方法,也没有通过this显示地调用自身的其他构造方法,则系统会默认先调用父类的午参构造方法。 b.如果子类的构造方法中通过super显示地调用父类的有参构造方法,那将执行父类的相应构造方法,而不执行父类的无参构造方法。 c.如果子类的构造方法中通过this显示调用自身的其他构造方法,在相应构造方法中应用以上两条规则。 8.抽象类便于复用,接口便于代码维护。接口里的数据成员必须初始化,且数据成员均为常量。 9.异常Throwable:Error+Exception(CheckedException+RunnableException) Error:程序中不可捕获或处理,AWTError、ThreadDeath。 CheckedException:程序中必须处理,定义方法时声明所有可能会抛出的checked exception。 RunnableException:可以进行选择捕获或处理,定义方法时不需要声明(NullPointException、ClassNotFoundException、ArrayIndexOutOfBoundsException、NumberFormatException、ArithmeticException、InputMissmatchException…)。 10.面向对象设计思想的7条原则: a.单一职责原则(SRP)。系统中每一个对象都应该只有一个单独的职责,而所有对象关注的就是自身职责的完成。 b.开闭原则(OCP)。一个对象要对扩展开放,对修改关闭。 c.里式替换原则(LSP)。在任何父类出现的地方都可以用它的子类替换。 d.依赖注入原则(DIP)。要依赖于抽象,不要依赖具体的实现。 e.接口分离原则(ISP)。不应该强迫客户程序依赖他们不需要使用的方法。 f.迪米特原则(LOP)。一个对象应该与其他对象尽可能少的了解。 g.优先使用组合而不是继承原则(CARP)。优先使用组合,而不是继承。 11.流:字节流(字节输入流InputStream+字节输出流OutputStream)+字符流(字符输入流Reader+字符输出流Writer) 序列化(Serializable):同时只有一个进程访问这段代码。 12.java获取Class对象的3种方法: a.调用某个对象的getClass()方法 Person person= new Person; Class class = person.getClass(); b.调用某个类的class属性来获取该类对应的class对象。 Class class = Person.class; c.使用Class类的forName()静态方法。 Class class = Class.forName(“com.zheng.Person”); 第二种方法更安全,编译阶段可以检查class对象是否存在,程序性能更高。 13.进程和线程(User Thread(用户线程)、Daemon Thread(守护线程) ) 进程:进程是应用程序的执行实例。特征:动态性、并发性、独立性。 线程:进程内部一个可执行单元,是程序中一个单一的顺序控制流程。 a.一个进程可以包含多个线程,一个线程至少要有一个父进程。 b.线程可以有自己的堆栈、程序计数器和局部变量。 c.线程和父进程内的其他线程共享进程内的全部资源。 d.独立运行,采用抢占方式。 e.一个线程可以创建和删除另一个线程。 f.同一个进程内的多个线程之间可以并发执行。 g.线程的调度管理是由进程来完成的。 线程生命周期:新建(new Thread)-就绪(runnable)-运行(running)-死亡(dead)-堵塞(blocked) 多线程优势:改善用户体验,提高资源利用率。 synchronized保证同一时刻同一资源只被同一线程使用。 14.TCP/IP:传输控制协议(网络层IP协议+传输层TCP协议) HTTP:超文本传输协议,是一种为web设计的网络通信协议 OSI参考模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 15.Socket编程步骤: 服务器端: a.建立一个服务器socket,绑定指定端口开始监听。 b.使用accept()方法阻塞等待监听,获得新的连接。 c.建立输入输出流 d.在已有的协议上产生会话。 e.使用close()关闭流河socket。 客户端: a.建立客户端socket连接,指定服务器的位置以及端口。 b.得到socket的读写流 c.利用流按照一定的协议对socket进行读/写操作。 d.使用close()关闭流和socket。 16.相等的属性值:两个对象具有相同的类型,相同的属性值。 同一个引用对象:两个引用指向同一个对象,即指向同一个地址。 17.范型:参数化类型,避免强制类型转换。范型是对java语言类型系统的一种扩展,以支持创建 可以按类型进行参数化的类。 好处:类型安全、避免强制类型转换、潜在的性能收益。 18.软件测试中的黑盒测试和白盒测试 白盒测试需要更加深入的接触到代码,例如代码语句的规范性、正确性之类的,可以通过画程序流程图来分析代码的路径,找出路径后可以根据路径来写测试用例。 黑盒测试不需要接触代码,主需要根据软件的功能来设计一些测试用例,例如某个按钮是否实现它的功能。 19.特殊字符: 空格: ;、>:>;、<:<;、版权符号:© 20.锁:用来共享资源控制并发访问的一种机制 悲观锁:指在读取数据之后马上锁定相关资源 乐观锁:把所有的锁定都延迟到即将执行更新之前。 21.JDBC API 作用 Connection接口 程序与数据库连接对象 DriverManager类 管理数据库驱动,获取数据看链接 Statement接口 执行静态SQL语句 PrepareStatement接口 预编译的SQL语句的对象 CallableStatement接口 执行SQL存储过程 ResultSet接口 查询结果集 22.JSP首次访问时经历的三个阶段:转译(JSP文件转换为JAVA源文件)-编译(JAVA源代码编译成字节码文件,生成class文件)-运行(执行并产生输出) JSP九大内置对象:request、response、session、out、application、pageContext、page、config、exception 23.MVC设计模式=模型+视图+控制器 Model(javaBean):实现数据操作和业务处理(Dao+Service层) View:显示信息,与用户交互的界面(JSP或HTML) Controller:接收请求,调用模型实现业务,调用视图显示数据,完成操作(Servlet) 24.Hibernate执行持久化操作步骤: <1>.读取并解析配置文件 Configuration config = new Configuration().configure(); <2>.读取并解析映射信息,创建SessionFaction SessionFactory factory = config.buildSessionFaction(); <3>.打开session this.session = faction.openSession(); <4>.开始一个事务 tran = this.session.beginTransaction(); <5>.持久化操作 this.session.save(begin); <6>.提交事务 tran.commit(); <7>.关闭session this.session.close(); 25.设计模式与框架的异同 <1>.设计模式是设计重用;框架是部分代码重用,部分设计重用。 <2>.设计模式是抽象描述;框架有具体的代码实现 <3>.设计模式针对各种应用;框架针对某一特定应用
相关文章推荐
- SpringMVC文件上传、拦截器、与Spring的整合以及与Struts2的比较
- LeetCode 38 : Count and Say (Java)
- JAVA_SE ----- 基础知识总结-----关键字,标识符,注释,常量
- MyEclipse 启动报错:'Building workspace' has encountered a problem解决方法
- Java Exception
- struts2中的s标签解析
- 关于MyEclipse的破解(myeclipse trial expired)
- Java之跳出多重循环
- Spring+WebSocket+SockJS实现实时聊天
- JAVA——实现多线程
- java 物理分页和逻辑分页
- 第二个spring冲刺第9天
- javase-反射构造函数学习记录
- 【Java基础】——HTML隐藏域
- struts2 集成webservice 的方法
- Java关键字instanceof
- myeclipse中的web项目详解
- Java 日期类的使用:Date,Calender,SimpleDateFormat的简单使用
- Struts2概述
- Hashtable与Properties_绝对、相对、类路径存储与读取JAVA131