MyBatis 核心技术与面试 34 讲 职业生涯中常被问到: 如何成为某方面的高手? 如何快速搞定某项技术? 我现在的水平处于什么阶段? -- 我暗暗想,我们从小学到中学到大学,经历了大考三六九.小考天天有的无数磨练,难道毕业后我们就失去了学习的能力?一个个框架无非就是一门门学科,只要勤练习,多归纳,没有多少技术难题搞不定.对工作而言或者想要通过面试拿到心仪的 Offer,经验的归纳也必不可少,本篇专栏就是对 MyBatis 框架使用经验的总结归纳. 至于所处技术水平的问题,其实每个公司和个人…
第34讲UI组件之 ProgressDialog和Message 1.进度对话框 ProgressDialog <1>简介 ProgressDialog是AlertDialog类的一个扩展,可以为一个未定义进度的任务显示一个旋转轮形状的进度动画,或者为一个指定进度的任务显示一个进度条. 一个对话框中显示一个进步指标和一个可选的文本信息或一个视图.只有文本信息或一个视图,可以同时使用. 对话框可以按back键取消. <2>方法 setProgressStyle() 设置进度条风格 s…
面试34题: 题目:二叉树中和为某一值的路径 题:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 解题代码: # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回二维列表,内部每…
8.6.4.1请实现一个线程安全的单例模式. 1      public class MailListReader { 2          private static MailListReader reader = null; 3          private MailListReader(){}//构造函数私有 4           public static MailListReader getInstance() { 5              if(singleton ==…
5.5.1 你最近的项目里用到的是哪个数据?或你用过哪些数据库?或你对哪个数据库最熟悉? 通过这个问题,我们将会确认候选人是否在项目里用过数据库或JDBC. 5.5.2 你有没有建过表?或修改表里的字段?或有没有建过索引? 这个属于基本的对数据库的操作问题. 5.5.3 你有没有存储过程的使用经验?如果要通过存储过程的参数返回值,该怎么做? 我们在本章的5.1.6部分讲过关于存储过程的知识点,这里大家可以去了解下存储过程的语法,不过大家更应当去了解存储过程的优缺点,然后向面试官说明用到(或不用)…
3.6.1ArrayList和LinkedList有什么差别?在哪种场景里应当用ArrayList(或LinkedList)? 大家如果学过数据结构,这个问题不难回答:前者是基于数组,数组比较擅长索引查找,但不擅长被频繁地插入或删除:后者是基于链表,它擅长被频繁地插入或删除,如果对其频繁地进行索引查找,就会影响性能. 3.6.2 ArrayList和Vector有什么差别? 我们知道,ArrayList是线程不安全的,而且会以大概50%的规模进行动态扩容:而Vector是线程安全的,它会以100…
经常有不少读者在我公众号后台留言,说自己还是应届毕业生,缺乏工作经验与项目经验,不知道如何才能通过面试? 其实,项目经验固然重要,但是企业也知道,对于应届毕业生,是很难有拿得出手的项目经验出来的,毕竟缺乏实际工作经验,哪怕你是优秀生,也大多是在理论知识上,所以,一般来说,企业针对应届毕业生的面试,则主要考察基础知识,而且越是大公司,越是注重基础知识的考察. 这就好比盖房子,计算机方面的基础就好比是地基,大家都是从 0 开始,白纸一张,但是地基打的牢,才能决定未来这栋楼能盖多高. 所以越到后期,你…
1.MyBatis的环境配置 导入MyBatis包, mybatis-3.2.8.jar 导入MySQL驱动包, mysql-connector-java-5.1.24-bin.jar 创建表的实体类, 例如: MyUser(id, name, password) 编写MyBatis的核心配置文件, SqlMapConfig.xml 编写映射文件, 例如: MyUserMapper.xml 编写测试来完成数据库CRUD操作 2.MyBatis代码编写原理图,因为环境搭建成功不成功需要我们写一段代…
如下是本书相关内容的视频列表,会动态更新 第一章 1 视频1.1  JDK和JRE和JVM的区别,安装Java开发环境    1.1.1  第2页 2 视频1.2  编写第一个HelloWorld程序  1.1.2  第2页 3 视频1.3  开发稍复杂带函数调用的程序 1.1.3   第5页 4视频1.4Debug程序   1.1.4  第5页 5视频1.5输入运行时的参数   1.1.5  第7页 第二章 6视频2.1 从int和Integer来区别基本数据类型和封装类 2.1.1  第20…
都是百度云盘,均无密码 代码下载位置: https://pan.baidu.com/s/1I44ob0vygMxvmj2BoNioAQ 视频讲解位置: https://pan.baidu.com/s/1QYZEsT6J_9CFgdfNvfK5hg 如果有任何下载问题,请发邮件至hsm_computer@163.com 另外,这是我另外一本书 java web轻量级开发面试教程…
5.1.7.1 事务的四大特性是什么? ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚. ⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态. ⑶ 隔离性(Isolation) 隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离. ⑷ 持久性(Durabi…
问题2.7.1,开放性问题,说一下你对面向对象思想的了解. 要点1,先说基础概念,比如面向对象思想包括封装.继承.多态,然后说些语法,比如可以通过extends继承类.通过implement来实现接口. 要点2,得结合具体的实际,说一下在你做过的项目里,面向对象思想带来的具体好处,比如结合一个具体的例子(比如电信系统),说一下把方法都定义到父类里,然后通过继承子类来扩展,从而能改善代码结构,通过多态来减少代码修改后的维护量.这个切记别只说理论,说的时候一定得举些你项目里的例子. 问题2.7.2,…
面试的时候,面试官问你说,简单说一下Android的Binder机制,你会怎么回答? 我想,我会这么说. 在Android启动的时候,Zygote进程孵化出第一个子进程叫SystemServer,而在这个进程中,非常多系统提供的服务.比方ActivityManagerSerivce, PowerManagerService等,都在此进程中的某一条线程上执行. 而非常多用户开发的应用程序.也就是我们常说的APP,基于安全的考虑,在安装到系统中的时候,都会被分配一个独特的UID.执行在一个单独的进程…
"一致性hash的设计初衷是解决分布式缓存问题,它不仅能起到hash作用,还可以在服务器宕机时,尽量少地迁移数据.因此被广泛用于状态服务的路由功能" 01分布式系统的路由算法 假设有一个消息推送系统,其简易架构如下 ) 设备接入层不仅要接收设备的登录.下线等状态命令,还要把开发者的消息推送给设备.这个时候设备接入层就需要维护设备的状态信息(当然可以专门拆一个状态服务去维护这些信息,要求这部分必须少有代码更新,具体原因自己去想哦=_=).这个时候设备接入层的每台server都保留一批设备…
1.@Qualifier 注解 答:当有多个相同类型的bean却只有一个需要自动装配时,将@Qualifier 注解和@Autowire 注解结合使用以消除这种混淆,指定需要装配的确切的bean.   2.什么是Mybatis? (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动.创建连接.创建statement等繁杂的过程.程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高. (2)MyBat…
JS:1. 如何为一个已有的对象加一个新的方法,Prototype,这个不仅要知道,还要用过,写过 2. Angular和Ember比较的优势或不同点在哪里 3. null和undefined的区别,null是为了明确对象的value,而undefined会报错 4. Jquery动画效果 5. Jquery如何在某个div前面某个节点,以及父亲,等等第一个和最后一个节点插入某个元素等等 CSS:1. 伪类,伪元素,before/after等等用过,写过 ,并且知道如何不用这个,用另一种方法替换…
1. SQL: 查出产品对应的销售数量,会用到2个表之间的连接: select Products.ProductName, Sales.SalesAmount from Product left outter join Sales where Productes.ProductId=Sales.ProductId order by Sales.SalesAmount desc 2. JS: 写一个函数对数组元素进行输入,中间加上空格: for (var i=0; i<cars.length;i+…
7.2.10.1有T1.T2.T3三个线程,如何保证T2在T1执行完后执行,T3在T2执行完后执行? 用join语句,在t3开始前join t2,在t2开始前join t1. 不过,这会破坏多线程的并发性,不建议这样做. 7.2.10.2 wait和sleep方法有什么不同? 对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指…
7.1.5 (1) 如果某个类已经继承(extends)了一个类,那么让这个类具有多线程的特性? implements runnable类或通过线程池 7.1.5  (2)启动一个线程是用run()还是start()? . 通过start方法能启动一个线程 7.1.5  (3) 说下你在项目里的哪些场景里用到了多线程? 这个可以有很多场景,比如通过多线程来接收http请求,或者通过多线程来同步读写一个大的文件.…
4.6.1 java中有几种类型的流? Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer.Java中其他多种多样变化的流均是由它们派生出来的. 4.6.2字节流和字符流有什么差别?它们各自会用在哪些场合? stream结尾都是字节流,reader和writer结尾都是字符流.两者的区别就是读写的时候一个是按字节读写,一个是按字符.实际使用通常差不多.…
4.2.4.1 throw和throws有什么差别?异常(Exception)和错误(Error)有什么差别? throw语句表示抛出异常,由方法体内的语句处理.throws语句用在方法声明后面,表示如果抛出异常,由该方法的调用者来处理.   throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常.throw是具体向外抛异常的动作,所以它是抛出一个异常实例. 4.2.4.2 final.finalize和finally这三个相似的关键字有什么差别? final可以定义…
3.3.5.1如何遍历HashMap对象?尤其请说明通过Iterator遍历HashMap对象的方法. 建议用这种方式: Set<Entry<String,String>>entrySet=map.entrySet();     for(Entry<String,String>entry:entrySet){       entry.getKey();       entry.getValue();     } 3.3.5.2HashMap是线程安全的还是线程不安全的?…
3.2.7.1 请用ArrayList实现Stack以及Queue的功能. public class ArrayListStack extends ArrayList implements Stack {    ArrayList arrayList =new ArrayList<>() ;    public void push(T obj) {       arrayList.add(obj);    }    public T pop() {        return arrayLis…
2.3.6.1 String是最基本的数据类型吗?能不能被继承? String不能被继承,它是一个对象 2.3.6.2 String s = new String("xyz");创建了几个String 对象? 二者之间有什么区别? 创建了2个对象,一个是内存中的xyz,另一个是s,它指向xyz 2.3.6.3 String 和StringBuffer的区别? String是不可变类,如果遇到频繁操作String的场景,建议使用 StringBuffer或StringBuilder 2.…
2.2.5.1 switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 1 switch里可以用char,byte,short,int这些基本类型,以及它们的封装类.    2 在switch里不能用long,double,float,boolean,包括他们的封装类.    3 jdk1.7和以上的版本里,可以是用字符串类型.    4 switch中可以用枚举类型. 2.2.5.2在JAVA 中,如何跳出当前的多重嵌套循环? 用break或continue,其…
2.1.5.1说说&和&&的区别,以及|与||的区别. &和|是位运算符,不怎么用,而&&和||是逻辑运算符,一般用在if,while,for等条件判断里. 2.1.5.2 运行short s1 = 1; s1 = s1 + 1;会出现什么结果? short s1 = 1; s1 = s1 + 1;中,1 是int 型 s1 short型 通过 + 运算后s1 自动转为int 型 所以报错. 运行short s1 = 1; s1 += 1;又会出现什么结果?…
前言 在一个风和日丽的中午,和同事小勇一起走在公司楼下的小公园里面,看到很多的小姐姐,心想什么时候能够和这些小姐姐一起讨论人生呀,美滋滋,嘿嘿嘿. 收起你的哈喇子好不好,小勇总是在这个时候发出声音,挺让人喜(fu)欢(ck)的. 小勇:小农,现在不是推崇垃圾分类吗,你说到底什么是垃圾?小勇总是在我和他散步的时候,问这么让人深思的问题! 我:什么是垃圾啊,你不就是垃圾吗? 小勇:去你大爷的,正经的. 我:小勇啊,答应我以后散步的时候我们讨论点轻松点的问题好嘛?垃圾是啥,垃圾就是没有引用的对象就是垃…
在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面的. 我也知道,不少候选人能力其实不差,但面试时没准备或不会说,这样的人可能在进团队干活后确实能达到期望,但可能就无法通过面试,但面试官总是只根据面试情况来判断. 但现实情况是,大多数人可能面试前没准备,或准备方法不得当.要知道,我们平时干活更偏重于业务,不可能大量接触到算法,数据结构,底层代码这类…
最近在学习Java和全栈开发,推荐一些有用的书籍 书架主要针对Java后端和全栈开发用的 书籍介绍 <Spring Boot 2.0企业级应用开发实战> 本书深入浅岀地讲解了 Spring与 Spring Boot所涉及的重要知识点.更有特色的是,针对一个博客系统的开发过程,来描述所涉及的相关技术细节.读者不仅能全面学到软件开发技能,还能学到项目实战经验,在书中充分享受 coding的乐趣. <Spring Cloud 微服务架构开发实战> image 本书从微服务的思想谈起,渐渐…
0. 写在之前 首先呢我的面试经历和一些面霸和收割机的大神相比绝不算丰富,但我这三个月应该能代表很大一部分人的心路历程:从无忧无虑也无知的状态,然后遭遇挫败,跌入低谷,连续数天的黑暗,慢慢调整,逼着自己不能松懈,看到改变,收获肯定,分享经历.   先大概说下自己的面试经历吧(详细的面试过程和面试题解析在最后): 相关的公司有四类: 笔试就挂了的:网易.头条.(对于笔试这个东西我到现在都没太多经验) 网易是第一家参加笔试的,面试会报销费用去总部,所以还是有难度,这个公司呢,内推不内推都要参加笔试.…