记录第一次面试

1.ElementUI的输入按钮?

<el-input></el-input>

2.基本类型和引用类型?

java中的基本类型:byte、short、int、long、char、float、double、boolean
其他的都是引用类型
短整型:short 在内存中占2个字节,一个字节8位
整型:int  在内存中占4个字节,一个字节16位

3.String是基本类型吗 ?String是怎样创建的?

//不是,是引用类型
String 的值被创建后不能被修改,任何对 String 修改的操作都会引发新的 String 对象的生成

4.Java中怎么来判空的?

1.判断字符串为空或者对象是否为空
 判断一个String变量是否为空对象,应拿与其对应的 null 进行 == 比较,不能使用equals()、isEmpty()、""等进行判断
 "".equals(str) 来判断对象的内容是否为空
 length()==0  来判断 String  的字符个数是否为空值
 isEmpty() 判断String对象的字符个数是否为空值
    
 null != str 

    
在 org.apache.commons.lang.StringUtils 类提供了对String的常用的操作。
最为常用的 StringUtils.isEmpty(String str)、判断字符串为空的标准是 str==null、str.length==0
StringUtils.isBlank(String str) 判断某字符串为空的标准是 str==null、str.length==0 或者是由空白符
StringUtils.isNotEmpty(String str) 等价于 !isEmpty(String str)
StringUtils.isNotBlank(String str) 等价于 !isBlank(String str)

5.spring常用的注解和含义?

1.@Component()
//@Repository、@Service、@Controller 和 @Component 将类标识为Bean
Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:
@Repository、@Service 和 @Controller。
在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。
    
虽然目前这3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。

所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用上述注解对分层中的类进行注释。

@Service用于标注业务层组件
@Controller用于标注控制层组件(如struts中的action)
@Repository用于标注数据访问组件,即DAO组件
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
    
2.@RestController和@Controller的区别
@RestController从Spring 4.0以后产生的,用来将json/xml数据发送到前台页面,而不是返回视图页面。

@RestController注解等价于@ResponseBody + @Controller。
@RestController和@Controller的共同点是都用来表示Spring某个类是否可以接收HTTP请求,
二者区别:
@RestController无法返回指定页面,而@Controller可以;
前者可以直接返回数据,后者需要@ResponseBody辅助。

3.@Resource和@Autowired
//@Resource的作用相当于@Autowired,

只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。

@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。

如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。

//esource装配顺序

如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

4.@Data注解 与 lombok
//要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率
//常用的几个注解:

@Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
@AllArgsConstructor : 注在类上,提供类的全参构造
@NoArgsConstructor : 注在类上,提供类的无参构造
@Setter : 注在属性上,提供 set 方法
@Getter : 注在属性上,提供 get 方法
@EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法
@Log4j/@Slf4j : 注在类上,提供对应的 Logger 对象,变量名为 log
注解@Slf4j的使用

声明:如果不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以用注解@Slf4j;
log.error("getHostName error:{}",e);

5.@MapperScan和@Mapper
//通过使用@MapperScan可以指定要扫描的Mapper类的包的路径
//添加位置:是在Springboot启动类上面添加,
@SpringBootApplication
@MapperScan("com.it.dao")
public class SpringbootDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootMybatisDemoApplication.class, args);
    }
}
//添加@MapperScan(“com.it.dao”)注解以后,com.it.dao包下面的接口类,在编译之后都会生成相应的实现类。

@Mapper注解
作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类

添加位置:接口类上面
@Mapper
public interface UserDAO {
   //代码
}
6.@CrossOrigin
@CrossOrigin是用来处理跨域请求的注解
    
7.@EnableScheduling
springboot使用@EnableScheduling注解进行定时任务
    
//添加@EnableScheduling注解到入口类声明上面,如下所示
@SpringBootApplication
@EnableScheduling
public class SpringbootDemoApplication{
    ...
}

//将@Scheduled添加到不带参数的方法上,如下所示:
@Component
public class ScheduleTaskService implements IScheduleTaskService {
	
    @Override
    @Scheduled(fixedRate = 6000)
    public void autosync() {
        System.out.print(".");
    }

}
其中@Scheduled注解后面括号里面可以指定各种参数,在上面代码里面的fixedRate = 6000意思是下面的任务每隔6000毫秒,即每隔6秒执行一次。
    
8.@Bean和@Configuration
//@Bean 注解将会告诉 Spring 其修饰的方法将会返回一个对象,该方法要注册为 Spring 应用上下文的 bean。
@Configuration
public class AppConfig {

    @Bean
    public TransferService transferService() {
        return new TransferServiceImpl();
    }

}
//@Configuration注解表明这个类是一个配置类。可以启动组件扫描,用来将带有@Bean的实体进行实例化bean等
<beans>
    <bean id="transferService" class="com.it.TransferServiceImpl"/>
</beans>

6.mysql 中的Like 模糊查询

// %:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百 分号(%%)表示。

//:like '%龙%':查询出所有含有“龙”的记录

1.1. 所查询字段 + like '%龙%'

eg:select * from user where realname like '%龙%'

把含有“龙”字的 realname 字段搜索出来 \2. 所查询字段 + like '%龙%' and 所查询字段 + like '%文%'

eg: select * from user where realname like '%龙%' and realname like '%文%'

= 所查询字段 + like '%文%' and 所查询字段 + like '%龙%'

eg: select * from user where realname like '%文%' and realname like '%龙%'

\3. 查询出既含有“龙”同时又有“文”的所有记录

realname like'%龙%文%':查询所有“龙文”记录,可以是“龙_文”“_龙文”“龙文_”

​ “龙”字须在前面,“文”字在后面

select * from user where realname like '%龙%文%'
realname like'%文%龙%':查询所有“文龙”记录,可以是“文_龙”“_文龙”“文龙_”

​“文”字须在前面,“龙”字在后面

select * from user where realname like '%文%龙%'

// _: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句: 1.查询出中间含有“林”字的realname字段(前提:名字三个字)

select * from user where realname like '_林_'

=select * from user where realname like '%_林_%'

只能查询出类似“余林文”这样的realname为三个字且中间一个字为:“林” 2.查询出姓林的姓名(名字三个字)

select * from user where realname like'林__'(这里有两横杠)

=select * from user where realname like '%林__%'(这里有两横杠)

3.查询名字最后一个字为“林”的姓名(名字三个字)

select * from user where realname like '__林'(这里有两横杠)

= select * from user where realname like '%__林%'(这里有两横杠)

4.查询出姓林的姓名(姓名只有两个字)

select * from user where realname like '林_'
查询出姓林的姓名(姓名可以是两个字,也可以是三个字)
select * from user where realname like '_林'
查询名字最后一个字为“林”的姓名(姓名可以有两个字,也可以是三个字)
select * from user where realname like '%_林%'

7.mysql是怎样查询记录数的

select count(*) from test;

8.Linux你常用的命令

//好多就不总结了,主要还基本的命令和文件操作,就自行百度

9.redis你常用的命令

key
    keys * 获取所有的key
    select 0 选择第一个库
    move myString 1 将当前的数据库key移动到某个数据库,目标库有,则不能移动
    flush db      清除指定库
    randomkey     随机key
    type key      类型
    
    set key1 value1 设置key
    get key1    获取key
    mset key1 value1 key2 value2 key3 value3
    mget key1 key2 key3
    del key1   删除key
    exists key      判断是否存在key
    expire key 10   10过期
    pexpire key 1000 毫秒
    persist key     删除过期时间

string
    set name cxx
    get name
    getrange name 0 -1        字符串分段
    getset name new_cxx       设置值,返回旧值
    mset key1 key2            批量设置
    mget key1 key2            批量获取
    setnx key value           不存在就插入(not exists)
    setex key time value      过期时间(expire)
    setrange key index value  从index开始替换value
    incr age        递增
    incrby age 10   递增
    decr age        递减
    decrby age 10   递减
    incrbyfloat     增减浮点数
    append          追加
    strlen          长度
    getbit/setbit/bitcount/bitop    位操作
    
hash
    hset myhash name cxx
    hget myhash name
    hmset myhash name cxx age 25 note "i am notes"
    hmget myhash name age note   
    hgetall myhash               获取所有的
    hexists myhash name          是否存在
    hsetnx myhash score 100      设置不存在的
    hincrby myhash id 1          递增
    hdel myhash name             删除
    hkeys myhash                 只取key
    hvals myhash                 只取value
    hlen myhash                  长度

list
    lpush mylist a b c  左插入
    rpush mylist x y z  右插入
    lrange mylist 0 -1  数据集合
    lpop mylist  弹出元素
    rpop mylist  弹出元素
    llen mylist  长度
    lrem mylist count value  删除
    lindex mylist 2          指定索引的值
    lset mylist 2 n          索引设值
    ltrim mylist 0 4         删除key
    linsert mylist before a  插入
    linsert mylist after a   插入
    rpoplpush list list2     转移列表的数据
    
set
    sadd myset redis 
    smembers myset       数据集合
    srem myset set1         删除
    sismember myset set1 判断元素是否在集合中
    scard key_name       个数
    sdiff | sinter | sunion 操作:集合间运算:差集 | 交集 | 并集
    srandmember          随机获取集合中的元素
    spop                 从集合中弹出一个元素
    
zset
    zadd zset 1 one
    zadd zset 2 two
    zadd zset 3 three
    zincrby zset 1 one              增长分数
    zscore zset two                 获取分数
    zrange zset 0 -1 withscores     范围值
    zrangebyscore zset 10 25 withscores 指定范围的值
    zrangebyscore zset 10 25 withscores limit 1 2 分页
    Zrevrangebyscore zset 10 25 withscores  指定范围的值
    zcard zset  元素数量
    Zcount zset 获得指定分数范围内的元素个数
    Zrem zset one two        删除一个或多个元素
    Zremrangebyrank zset 0 1  按照排名范围删除元素
    Zremrangebyscore zset 0 1 按照分数范围删除元素
    Zrank zset 0 -1    分数最小的元素排名为0
    Zrevrank zset 0 -1  分数最大的元素排名为0
    Zinterstore
    zunionstore rank:last_week 7 rank:20150323 rank:20150324 rank:20150325  weights 1 1 1 1 1 1 1
    
    
排序:
    sort mylist  排序
    sort mylist alpha desc limit 0 2 字母排序
    sort list by it:* desc           by命令
    sort list by it:* desc get it:*  get参数
    sort list by it:* desc get it:* store sorc:result  sort命令之store参数:表示把sort查询的结果集保存起来

订阅与发布:
    订阅频道:subscribe chat1
    发布消息:publish chat1 "hell0 ni hao"
    查看频道:pubsub channels
    查看某个频道的订阅者数量: pubsub numsub chat1
    退订指定频道: unsubscrible chat1   , punsubscribe java.*
    订阅一组频道: psubscribe java.*
    
redis事物:
     隔离性,原子性, 
     步骤:  开始事务,执行命令,提交事务
             multi  //开启事务
             sadd myset a b c
             sadd myset e f g
             lpush mylist aa bb cc
             lpush mylist dd ff gg

服务器管理
    dump.rdb
    appendonly.aof
    //BgRewriteAof 异步执行一个aop(appendOnly file)文件重写
    会创建当前一个AOF文件体积的优化版本
    
    //BgSave 后台异步保存数据到磁盘,会在当前目录下创建文件dump.rdb
    //save同步保存数据到磁盘,会阻塞主进程,别的客户端无法连接
    
    //client kill 关闭客户端连接
    //client list 列出所有的客户端
    
    //给客户端设置一个名称
      client setname myclient1
      client getname
      
     config get port
     //configRewrite 对redis的配置文件进行改写

rdb
save 900 1
save 300 10
save 60 10000

aop备份处理
appendonly yes 开启持久化
appendfsync everysec 每秒备份一次

命令:
bgsave异步保存数据到磁盘(快照保存)
lastsave返回上次成功保存到磁盘的unix的时间戳
shutdown同步保存到服务器并关闭redis服务器
bgrewriteaof文件压缩处理(命令)

 //ps 这些都记不住 get、set、mset、select 用的多 还有ping

10.mybatis是怎么做映射的 链接 11.冒泡排序和选择的排序的比较和实现 链接

全部评论

相关推荐

头像
04-29 10:53
已编辑
东北大学 自动化类
点赞 评论 收藏
转发
4 2 评论
分享
牛客网
牛客企业服务