1.String字符转换为日期?
用法: SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM,
2.IOC控制反转,用哪些注解?
@Autowired 默认按类型装配,
@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
3.Spring用哪些东西?
01. 核心容器 :核心容器提供 Spring框架的基本功能。 核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用 控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
02. Spring 上下文 : Spring上下文是一个配置文件,向 Spring框架提供上下文信息。 Spring上下文包括企业服务,例如 JNDI、 EJB、电子邮件、国际化、校验和调度功能。
03. Spring AOP :通过配置管理特性, Spring AOP模块直接将面向方面的编程功能集成到了 Spring框架中。所以,可以很容易地使 Spring框架管理的任何对象支持 AOP。 Spring AOP模块为基于 Spring的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB组件,就可以将声明性事务管理集成到应用程序中。
04. Spring DAO : JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向JDBC 的异常遵从通用的DAO 异常层次结构。
05. Spring ORM : Spring框架插入了若干个 ORM框架,从而提供了 ORM的对象关系工具,其中包括 JDO、 Hibernate和 iBatis SQL Map。所有这些都遵从 Spring的通用事务和 DAO异常层次结构。
06. Spring Web 模块 : Web上下文模块建立在应用程序上下文模块之上,为基于 Web的应用程序提供了上下文。所以, Spring框架支持与 Jakarta Struts的集成。 Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
07. Spring MVC 框架 : MVC框架是一个全功能的构建 Web应用程序的 MVC实现。通过策略接口, MVC框架变成为高度可配置的, MVC容纳了大量视图技术,其中包括 JSP、 Velocity、 Tiles、 iText和 POI
4.Stringbuffer StringBuilder String?
String是固定不变的,而StringBuffer和StringBuilder可以改变它们的值。
StringBuffer和StringBuilder唯一的区别是StringBuilder是非同步的而StringBuffer是同步的。当系统需要运行单线程时,使用StringBuilder比较好。StringBuilder比StringBuffer更有效用。
选择原则:
如果你的文本(字符串)不会改变就用String类因为String对象是不可变的。
如果你的文本(字符串)可以改变并且在单线程中访问,使用StringBuilder。
如果你的文本(字符串)可以改变并且在多线程中访问,使用StringBuffer。
5.List有哪些 ?
而List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。
6.怎么定义String数组?
1.String[] str={"AAA","BBB","CCC"};
2.String str[]={"AAA","BBB","CCC"};
7.https与http的区别?
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
8.solr引擎怎么用?
http://www.importnew.com/12607.html
9.AJAX定义的类型哪些?
类型:String
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包MIME 信息来智能判断,比如XML MIME 类型就被识别为XML。在1.4 中,JSON就会生成一个 JavaScript对象,而 script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:
•"xml": 返回 XML文档,可用 jQuery处理。
•"html": 返回纯文本 HTML信息;包含的 script标签会在插入 dom时执行。
•"script": 返回纯文本 JavaScript代码。不会自动缓存结果。除非设置了 "cache"参数。注意:在远程请求时(不在同一个域下),所有POST 请求都将转为GET 请求。(因为将使用DOM 的script标签来加载)
•"json": 返回 JSON数据 。
•"jsonp": JSONP 格式。使用 JSONP形式调用函数时,如 "myurl?callback=?" jQuery将自动替换 ?为正确的函数名,以执行回调函数。
•"text": 返回纯文本字符串
10.jQuery哪些属性?
http://www.w3school.com.cn/jquery/jquery_ref_attributes.asp
11.String boot怎么用?
首先谈谈我对spring boot 的认知:
String boot 作为一款spring家族的框架,是一个新的中小型项目的宠儿。是一个基于spring的轻量级框架。它继承了tomcat、mysql、hibernate等工具,在启动时很无脑,在controller里写一个main方法启动即可。下来在数据层可以很无脑的使用hibernate的框架去实现。并不用什么数据。讲真还是蛮吊的,反正就是说,实现了代码的大大减少。
二. 下来说下实现吧:
1.首先使用这个玩意,推荐使用jdk版本是1.8,不过我这里用的是1.7目前也没什么问题。下来的话,这个项目是基于maven管理的,需要一些maven依赖,很无脑。
这是从官方生成的项目的pom文件 底下mysql的那个是我自己加的,因为我在使用的时候,报找不到com.jdbc.mysql.Driver驱动,于是我就自己加入了这个包。
同样的,在这里我也附上关于Spring boot 快速开始的地址 http://projects.spring.io/spring-boot/#quick-start这是一个官方的地址。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.meizu.example</groupId>
<artifactId>SpringBoot_Demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SpringBoot_Demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.7</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<!--自行加入 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.下来就要看看如何启动
在从官网快速开始的项目里,会有这样的一个controller
package com.meizu.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class SpringBootDemoApplication {
@RequestMapping("/")
String home() {
return "Hello World123!";
}
@RequestMapping("/a")
String homea() {
return "this is a !";
}
public static void main(String[] args) {
SpringApplication.run(SpringBootDemoApplication.class, args);
}
}
重点是这个@SpringBootApplication。这个注解有什么作用呢?
a. 提供静态方法,用于开发独立运行的应用
b.嵌入容器配置,tomcat或者jetty
c.外部配置支持,从命令行,属性文件读取配置
d.spring context 的初始化
其实这个文件是默认有的,你想添加什么内容自行添加即可。
这时候你运行这个main方法即可。。。这时候就相当于你启动了tomcat容器(默认tomcat,jetty的我还没研究,过会就去看看)。
这时候访问以下:
12.前端框架的怎么用,原理?
13.FreeMarker模板引擎,list有什么作用,等等,怎么判断为空!等?
<#list 获取的list对象as item>
$
</#list>
id为item这种类型bean的属性.
如判断user是否为空,则:
<#if user??>
//不为空操作
<#else>
</#if>
14.事物怎么用?
我们把对事务的控制放在系统的service层(分为controller层、service层、DAO层)来处理,下面是我的spring配置文件
15.集合字符串怎么拼接?
String类的方法:
①利用运算符"+"
②public String concat(String str)进行字符串的拼接操作
StringBuffer的方法:
①public StringBuffer append(String str)将str添加到当前字符串缓冲区的字符序列的末尾
②public StringBuffer insert(int offset,String str)在当前字符串缓冲区的字符序列的下标
索引offset插入str。如果offset等于旧长度,则str添加在字符串缓冲区的尾部
16.对称加密与非对称加密的区别?
对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。
非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那 么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
17.GIT怎么下载代码,上传代码?
1、新建项目文件夹helloword
2、cd hellword进入项目文件夹
3、git init初始化仓库
4、git remote add helloword <项目地址>添加关联
5、git pull hellowrd(仓库名) master(分支名)下载代码到本地.
6.泛型?
泛型的好处
Java 语言中引入泛型是一个较大的功能增强。不仅语言、类型系统和编译器有了较大的变化,以支持泛型,而且类库也进行了大翻修,所以许多重要的类,比如集合框架,都已经成为泛型化的了。
这带来了很多好处:
1,类型安全。 泛型的主要目标是提高 Java程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。
2,消除强制类型转换。 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。
3,潜在的性能收益。 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为未来版本的JVM 的优化带来可能。由于泛型的实现方式,支持泛型(几乎)不需要JVM 或类文件更改。所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已。
Java语言引入泛型的好处是安全简单。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
泛型在使用中还有一些规则和限制:
1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。
2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。
3、泛型的类型参数可以有多个。
4、泛型的参数类型可以使用extends语句,例如<T extends superclass>。习惯上成为“有界类型”。
5、泛型的参数类型还可以是通配符类型。例如Class<?> classType = Class.forName(Java.lang.String);
泛 型还有接口、方法等等,内容很多,需要花费一番功夫才能理解掌握并熟练应用。在此给出我曾经了解泛型时候写出的两个例子(根据看的印象写的),实现同样的功能,一个使用了泛型,一个没有使用,通过对比,可以很快学会泛型的应用,学会这个基本上学会了泛型70%的内容
7.线程?
8.SQL隔离机制
对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题:
• 脏读: 对于两个事物 T1, T2, T1 读取了已经被 T2 更新但还没有被提交的字段. 之后, 若 T2 回滚, T1读取的内容就是临时且无效的.
• 不可重复读: 对于两个事物 T1, T2, T1 读取了一个字段, 然后 T2 更新了该字段. 之后, T1再次读取同一个字段, 值就不同了.
• 幻读: 对于两个事物 T1, T2, T1 从一个表中读取了一个字段, 然后 T2 在该表中插入了一些新的行. 之后, 如果 T1 再次读取同一个表, 就会多出几行.
数据库事务的隔离性: 数据库系统必须具有隔离并发运行各个事务的能力, 使它们不会相互影响, 避免各种并发问题.
一个事务与其他事务隔离的程度称为隔离级别. 数据库规定了多种事务隔离级别, 不同隔离级别对应不同的干扰程度, 隔离级别越高, 数据一致性就越好, 但并发性越弱
数据库提供了4中隔离级别:
隔离级别 描述
READ UNCOMMITTED(读未提交数据) 允许事务读取未被其他事务提交的变更,脏读、不可重复读和幻读的问题都会出现
READ COMMITED(读已提交数据) 只允许事务读取已经被其他事务提交的变更,可以避免脏读,但不可重复读和幻读问题仍然会出现
REPEATABLE READ(可重复读) 确保事务可以多次从一个字段中读取相同的值,在这个事务持续期间,禁止其他事务对这个字段进行更新,可以避免脏读和不可重复读,但幻读的问题依然存在
SERIALIZABLE(串行化) 确保事务可以从一个表中读取相同的行,在这个事务持续期间,禁止其他事务对该表执行插入、更新和删除操作,所有并发问题都可以避免,但性能十分低
Oracle 支持的 2 种事务隔离级别:READ COMMITED, SERIALIZABLE. Oracle 默认的事务隔离级别为: READ COMMITED
Mysql 支持 4 中事务隔离级别. Mysql 默认的事务隔离级别为: REPEATABLE READ repeatable read