从周六开始,面试、笔试、宣讲会连轴转,昨天收到群面的fail通知之后,下午也不想去广工现场跟一群汉子手撕代码了,选择了爬床睡觉,过了一天的安逸日子,终于勤奋起来把之前的笔试盲点总结一下,虎牙面试的稍后再整理。希望IT行业对女生少点偏见吧

————————————————————————正文分割线———————————————————————————

1、TCP采用心跳报文保持连接    √

解析:

心跳包机制

跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。
   在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项:SO_KEEPALIVE。系统默认是设置的2小时的心跳频率。但是它检查不到机器断电、网线拔出、防火墙这些断线。而且逻辑层处理断线可能也不是那么好处理。一般,如果只是用于保活还是可以的。
   心跳包一般来说都是在逻辑层发送空的echo包来实现的。下一个定时器,在一定时间间隔下发送一个空包给客户端,然后客户端反馈一个同样的空包回来,服务器如果在一定时间内收不到客户端发送过来的反馈包,那就只有认定说掉线了。
   其实,要判定掉线,只需要send或者recv一下,如果结果为零,则为掉线。但是,在长连接下,有可能很长一段时间都没有数据往来。理论上说,这个连接是一直保持连接的,但是实际情况中,如果中间节点出现什么故障是难以知道的。更要命的是,有的节点(防火墙)会自动把一定时间之内没有数据交互的连接给断掉。在这个时候,就需要我们的心跳包了,用于维持长连接,保活。
   在获知了断线之后,服务器逻辑可能需要做一些事情,比如断线后的数据清理呀,重新连接呀……当然,这个自然是要由逻辑层根据需求去做了。

总的来说,心跳包主要也就是用于长连接的保活和断线处理。一般的应用下,判定时间在30-40秒比较不错。如果实在要求高,那就在6-9秒。

说起网络应用编程,想到最多的就是聊天类的软件。当然,在这类软件中,一般都会有一个用户掉线检测功能。今天我们就通过使用自定义的HeartBeat方式来检测用户的掉线情况。

2、TCP/UDP基于IP协议  √

解析:参考链接

TCP:

1、面向连接:传输前必须建立连接,完毕后要进行释放;

2、每个连接只有两个端点,每一条连接是点到点的;

3、可靠:数据无差错、不丢失、无重复、按顺序到达;

4、全双工通信:允许通信双方的应用进程在任何时候都能发送数据;

5、面向字节流

UDP:在IP的数据报服务的基础上添加功能

1、无连接:不需预先建立连接,减少了时延

2、无法保证可靠交付

3、面向报文

另外UDP的一些特点:无拥塞控制机制;支持一对一、一对多、多对一、多对多的交互通信;首部开销小

3、ping是通过什么协议实现的?  ICMP

解析:

ICMP是“Internet Control Message Ptotocol”(Internet控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

在网络中经常会使用到ICMP协议。例如经常用于检查网络不通的ping命令,这个ping的过程实际上就是ICMP协议工作的过程。还有跟踪路由的trancert命令也是基于ICMP协议的。

操作系统规定的ICMP数据包最大尺寸不超过64KB。通常利用这一规定进行主机攻击。即Ping of Death攻击。它的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机

此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成ICMP风暴,使得目标主机耗费大量的CPU资源处理,疲于奔命。

ping.exe的原理:向指定的IP地址发送一定长度的数据包,按照约定,若指定IP地址存在的话,会返回同样大小的数据包,当然,若在特定时间内没有返回,就是“超时”,会被认为指定的IP地址不存在。由于ping使用的是ICMP协议,有些防火墙软件会屏蔽ICMP协议,所以有时候ping的结果只能作为参考,ping不通并不一定说明对方IP不存在。

IPSec安全策略防ping原理:通过新建一个IPSec策略过滤本机所有的ICMP数据包,这样确实可以有效地防ping,但同时也会留下后遗症。因为ping命令和ICMP协议有着密切的关系。在ICMP协议的应用中包含11种报文格式,其中ping命令就是利用ICMP协议中的“Echo Request”报文进行工作的。

一般在某些有特殊应用的局域网环境中,容易出现数据包丢失的现象,影响用户正常办公,因此建议使用防火墙。

4、红黑树(我的算法果真学得一般般……)

解析:参考链接

我当时的考点主要是左右旋,上面图里已经统计了规律,我再来说明一下:

具体过程讲解:对节点120进行右旋,那它的左节点100将成为它的父节点,120成为100的右节点;为了让旋转后的树是一棵相对平衡的二叉树,我们需要给失去左节点的120重新找一个左节点,那被120霸占了位置的100原来的右节点110就是120的新左节点。

5、Collection的子接口

Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。Map接口并不是Collection接口的子接口,但是它仍然被看作是Collection框架的一部分。

更详细的解答可参考文章

6、java的鲁棒性

1)java能检查程序在编译和运行时的错误。java编译器可以查出许多其他语言运行时才能发现的错误。

2)提供自动垃圾收集来进行内存管理,防止程序员再管理内存时容易产生的错误。

3)java还实现了真数组,避免了覆盖数据的可能。

真数组:数组元素在内存中是一个接着一个线性存放的,通过第一个元素就能访问随后的元素。

java不支持指针操作,大大减少了错误发生的可能性。

4)java具有异常处理功能。

当程序异常时,它能捕获并响应意外情况,以保证程序能稳妥地结束,计算机不会崩溃。

5)java的强类型机制。

比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。

问的比较多的就是:java能运行虚拟机实现跨平台,这个明显就不是。

7、mysql的默认端口

1)mysql的默认端口是3306,可以编辑用户目录下的 .my.cnf 文件进行修改;

2)sqlserver默认端口号为:1433;

3)oracle默认端口号为:1521;

4)DB2默认端口号为:5000;

5)PostgreSQL默认端口号为:5432。

8、object类的方法:notify、notifyAll、sleep、wait,以上哪个不是,顺便带一下thread类的

首先,wait(),notify(),notifyAll()都是object类的方法,wait属于thread。

wait()方法的意思是持有该锁对象的线程对象进入wait状态:释放锁,然后将当前线程放入等待池中。而sleep()方法是在线程类中实现的,其调用者是线程对象。sleep()的作用是将当前线程暂停一定的时间,但在这期间并不释放锁。

notify与notifyAll的区别

notify()用于随机唤醒一个等待该锁对象的线程,notifyAll()用于唤醒所有等待该锁对象的线程。(被唤醒表示该线程具备了竞争锁的资格)也即是:notify()会在等待池中随机选择一个线程对象放入锁池中。而notifyAll会将所有等待该锁的线程放入锁池中。

9、十大排序的时间复杂度:平均、最坏等,空间复杂度

10、GLSurfaceView

没有学过opengl的人五毛钱肯定没听过这个东西(被虎牙小哥哥问了这个的我一脸蒙蔽)

11、throw&throws

由图可知throws出现在方法函数头;而throw出现在函数体。throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常对象。

注意两个都只是抛出异常,不负责处理的啊

12、char、float、short等分别占几位

实践出真知,64位系统的结果如下:

之前碰到一道这样的题目:

给出:
struct{short a;char b;float c;
}cs
求sizeof(cs)

明显答案是4。

14、关于context

Context是个抽象类,通过类的结构可以看到:Activity、Service、Application都是Context的子类;

从Android系统的角度来理解:Context是一个场景,描述的是一个应用程序环境的信息,即上下文,代表与操作系统的交互的一种过程。

从程序的角度上来理解:Context是个抽象类,而Activity、Service、Application等都是该类的一个实现。

所以:Context数量=Activity数量+Service数量+1。作为一个表明上下文的变量,它的作用就是在Android框架里为功能函数说明当前的执行环境,更多关于context用得不好泄露以及一些源码的分析可以看博客

15、判断奇偶的方法:9&1之类的

16、多态

17、黑盒、白盒、灰盒测试

白箱测试或白盒测试(White-box testing 或glass-box testing)是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。   

黑箱测试或黑盒测试(Black-box testing)是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件或某种软件功能的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。通常测试人员在进行测试时不仅使用肯定出正确结果的输入数据,而且还会使用有挑战性的输入数据以及可能结果会出错的输入数据以便了解软件怎样处理各种类型的数据。   

灰箱测试或灰盒测试(Gray-box testing):灰箱测试就像黑箱测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的。甚至于还读过部分源代码。 因此测试人员可以有的放矢地进行某种确定的条件/功能的测试。这样做的意义在于:如果你知道产品内部的设计和对产品有透过用户界面的深入了解,你就能够更有效和深入地从用户界面来测试它的各项性能。

19、string、stringbuilder、stringbuffer

从运行速度和线程安全两方面来进行讨论

具体查看博客

20、关键字final

当用final修饰一个类时,表明这个类不能被继承。

修饰方法:使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。因此,如果只有在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。注:类的private方法会隐式地被指定为final方法。

修饰变量:对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

21、&和&&

&:不管前面的条件是否正确,后面都执行
&&: 前面条件正确时,才执行后面,不正确时,就不执行,就效率而言,这个更好。

22、post和get

1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。   

(1).所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。   * 注意:这里安全的含义仅仅是指是非修改信息。   

(2).幂等的意味着对同一URL的多个请求应该返回同样的结果。

get把请求的数据放在url上,即HTTP协议头上,其格式为: 以?分割URL和传输数据,参数之间以&相连。 数据如果是英文字母/数字,原样发送, 如果是空格,转换为+, 如果是中文/其他字符,则直接把字符串用BASE64加密,及“%”加上“字符串的16进制ASCII码”。 post把数据放在HTTP的包体内(requrest body)。

get提交的数据最大是2k(原则上url长度无限制,那么get提交的数据也没有限制咯?限制实际上取决于浏览器,(大多数)浏览器通常都会限制url长度在2K个字节,即使(大多数)服务器最多处理64K大小的url。也没有卵用。)。 post理论上没有限制。实际上IIS4中最大量为80KB,IIS5中为100KB。

GET产生一个TCP数据包,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); POST产生两个TCP数据包,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

GET在浏览器回退时是无害的,POST会再次提交请求。

GET产生的URL地址可以被Bookmark,而POST不可以。

GET请求会被浏览器主动cache,而POST不会,除非手动设置。

GET请求只能进行url编码,而POST支持多种编码方式。

GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

GET只接受ASCII字符的参数的数据类型,而POST没有限制。

那么,post那么好为什么还用get?get效率高!

23、activty之间跳转时触发的函数:

参考链接

A调到Activity B的函数触发过程:A.pause()->B.create()->B.start()->B.resume()->A.stop()

24、如果切屏不需要重新调用activity各个生命周期,需要设置configChanges为

详见博客

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行一次。

2.设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横执行一次再切回竖屏时并不会重新调用。

3.设置Activity的android:configChanges="orientation|keyboardHidden”时,和2反应一样。

4.设置Activity的android:configChanges=“orientation|screeSize”时,切屏不会重新调用各个声明周期。

25、Activity 启动Service时,下列的数据类型可以被传递的是:Activity和File

26、Override和Overload

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

最常用的地方就是构造器的重载。

27、Java的23种设计模式

具体可看博客

目前问的比较多的就是观察者(4399、YY),代理模式笔试选择经常见,责任链模式笔试的简答题见过

28、fragement的生命周期与activity的关系

29、onCreate里调用finish的后果

举个例子来说明一下应用场景:从activityA往activityB传递数据,acitivityB之前不存在因此需要新建,调用onCreate,但是从A->B的数据非法,这时候就不能完成activityB的创建,而要调用finish()。

30、Java多线程:线程安全和非线程安全的集合对象(YY和一家小公司面的时候都问了,可是我仿佛没睡醒一样回答得不好)

转自博客:https://blog.csdn.net/u011389474/article/details/54602812

一、概念:

线程安全:就是当多线程访问时,采用了加锁的机制;即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读取完之后,其他线程才可以使用。防止出现数据不一致或者数据被污染的情况。

线程不安全:就是不提供数据访问时的数据保护,多个线程能够同时操作某个数据,从而出现数据不一致或者数据污染的情况。 对于线程不安全的问题,一般会使用synchronized关键字加锁同步控制。

线程安全 工作原理: jvm中有一个main memory对象,每一个线程也有自己的working memory,一个线程对于一个变量variable进行操作的时候, 都需要在自己的working memory里创建一个copy,操作完之后再写入main memory。 当多个线程操作同一个变量variable,就可能出现不可预知的结果。 而用synchronized的关键是建立一个监控monitor,这个monitor可以是要修改的变量,也可以是其他自己认为合适的对象(方法),然后通过给这个monitor加锁来实现线程安全,每个线程在获得这个锁之后,要执行完加载load到working memory 到 use && 指派assign 到 存储store 再到 main memory的过程。才会释放它得到的锁。这样就实现了所谓的线程安全。

二、线程安全(Thread-safe)的集合对象

Vector 线程安全: HashTable 线程安全: StringBuffer 线程安全:

三、非线程安全的集合对象:

ArrayList : LinkedList: HashMap: HashSet: TreeMap: TreeSet: StringBulider:

四、相关集合对象比较

Vector、ArrayList、LinkedList:

1、Vector:

Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。

2、ArrayList:

a. 当操作是在一列数据的后面添加数据而不是在前面或者中间,并需要随机地访问其中的元素时,使用ArrayList性能比较好。

b. ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制到新的存储空间中。当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动、代价比较高。因此,它适合随机查找和遍历,不适合插入和删除。

3、LinkedList:

a. 当对一列数据的前面或者中间执行添加或者删除操作时,并且按照顺序访问其中的元素时,要使用LinkedList。

b. LinkedList是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。另外,他还提供了List接口中没有定义的方法,专门用于操作表头和表尾元素,可以当作堆栈、队列和双向队列使用。

Vector和ArrayList在使用上非常相似,都可以用来表示一组数量可变的对象应用的集合,并且可以随机的访问其中的元素。

ArryList和LinkedList的区别: 在处理一列数据项时,Java提供了两个类ArrayList和LinkedList,ArrayList的内部实现是基于内部数组Object[],所以从概念上说它更像数组;然而LinkedList的内部实现是基于一组连接的记录,所以,它更像一个链表结构;所以它们在性能上有很大的差别。 由上可知,在ArrayList的前面或者中间插入数据的时候,必须将其后的所有数据相应的后移,这样要花费较多的时间;所以,当操作是在一列数据的后面添加数据而不是在前面或者中间,并需要随机地访问其中的元素时,使用ArrayList性能比较好。 然而访问链表中的某个元素的时候,就必须从链表的一端开始,沿着连接的方向一个一个元素的去查找,直到找到所需的元素为止,所以,当对一列数据的前面或者中间执行添加或者删除操作时,并且按照顺序访问其中的元素时,要使用LinkedList。 如果在实际的操作中,前面两种情况交替出现,可以考虑使用List这样的通用接口,而不用关心具体的实现,再具体的情况下,它的性能由具体的实现来保证。

HashTable、HashMap、HashSet:

HashTable和HashMap采用的存储机制是一样的,不同的是:

1、HashMap:

a. 采用数组方式存储key-value构成的Entry对象,无容量限制;

b. 基于key hash查找Entry对象存放到数组的位置,对于hash冲突采用链表的方式去解决;

c. 在插入元素时,可能会扩大数组的容量,在扩大容量时须要重新计算hash,并复制对象到新的数组中;

d. 是非线程安全的;

e. 遍历使用的是Iterator迭代器;

2、HashTable:

a. 是线程安全的;

b. 无论是key还是value都不允许有null值的存在;在HashTable中调用Put方法时,如果key为null,直接抛出NullPointerException异常;

c. 遍历使用的是Enumeration列举;

3、HashSet:

a. 基于HashMap实现,无容量限制;

b. 是非线程安全的;

c. 不保证数据的有序;

TreeSet、TreeMap:

TreeSet和TreeMap都是完全基于Map来实现的,并且都不支持get(index)来获取指定位置的元素,需要遍历来获取。另外,TreeSet还提供了一些排序方面的支持,例如传入Comparator实现、descendingSet以及descendingIterator等。

1、TreeSet:

a. 基于TreeMap实现的,支持排序;

b. 是非线程安全的;

2、TreeMap:

a. 典型的基于红黑树的Map实现,因此它要求一定要有key比较的方法,要么传入Comparator比较器实现,要么key对象实现Comparator接口;

b. 是非线程安全的;

31、DNS既依赖于TCP,也依赖于UDP

32、OSI7层模型

——————————10.9更新——————————

SQLiteOpenHelper类(SQLlite数据库操作):

SQLite数据库我用得不少,但是OpenHelper用得不多。前者主要是建立数据库并定义对数据库的内容做操作,后者主要是用来管理你建立起的数据库。

直接看一个SQLiteOpenHelper的例子:

public class Dbhelper extends SQLiteOpenHelper {public static final String name = "myname.db";public static final int version = 1;
//创建数据库public Dbhelper(Context context) {super(context, name, null, version);}
//创建表@Overridepublic void onCreate(SQLiteDatabase arg0) {// 定义ID键值自增长,topic的长度为100,content的长度为1000的表arg0.execSQL("create table  diary"+"("+"_idinteger primary key autoincrement,"+"topic   varchar(100),"+"content    varchar(1000)");}//onUpgrade会在版本升级时被调用@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub
//      如果diary表存在则删除表db.execSQL("drop table if exists diary");
//      再重新创建表onCreate(db);}}

由此肯定可以引到Android存储数据的几种方式啦,分别有:使用SharedPreferences存储数据,文件存储数据SQLite数据库存储数据, 使用ContentProvider存储数据, 网络存储数据。具体可看博客。

Date数据类型转换:

做笔试题碰到一道手写代码将Date类型的年月日转成string类型的以-隔开的格式,就去复习了一下java封装好的一个转格式的函数。

/** * 将短时间格式时间转换为字符串 yyyy-MM-dd *  * @param dateDate * @param k * @return */
public static String dateToStr(java.util.Date dateDate) {  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");  String dateString = formatter.format(dateDate);  return dateString;
}  

更多的转换具体可看博客

try、catch、finally三者的调用顺序以及调用时间

try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 }

catch { //除非try里面执行代码发生了异常,否则这里的代码不会执行 }

finally { //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally }

对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行()
A、onPause() B、onCreate()C、onResume()D、onStart()

看了牛客网这一篇帖子的评论,应该答案是A啊

——————————————10.10更新——————————————————

1、service何时能发起对activity的主动通信?

binder

2、手写快排

————————10.13更新——————————

为啥面完华为之后我就不更了呢?因为之前我拒掉offer那家公司给了我想要去的岗位的offer了!!!!!现在就看华为捞不捞我了,终于能睡个好觉,好好看场电影,还有20天左右也要考试了!也该泡馆复习了!昨天鸽了3个面试的我也是很佛了,因为真的累了。反正吧,有时候兜兜转转,事情还是会如你所愿。

还有几道编程题:

1、阿里的:给出m根火柴,要求拼出一个最大的n位数

2、CVTE的:往n个文件中写入数字,文件编号依次从1到N,对应写入的文件内容为[1,x*100000](1<=x<=N),写入文件完成后,压缩成一个zip文件

3、用友的,手写KMP(果然平时没写好就忘了),还有一道二分查找

4、YY,寻找字符串中出现次数最多的子字符串的长度(次数相同时,输出更长的)

5、一开始有一对兔子,成长7个月后会开始生小兔子,之后每3个月生一对兔子,问n个月后共有多少对兔子?

6、统计n个元素的出栈方式的数量

9.17之前的安卓笔试题总结——持续更新相关推荐

  1. 阿里笔试题(2015)持续更新中

    第一次做阿里笔试题,除了ACM题之外从来没有做过校招网络题呀,完全是裸考,总体感觉吧,对于我来说,感觉时间不够用,不是题不会,感觉时间紧,大脑很混乱,总结这一次的笔试题 废话不多说,直接上题和答案 平 ...

  2. 安卓面试题(持续更新)

    安卓面试题小结 Android 解析XML的方式(三种:SAX.Pull.Dom) 什么是XML文件 SAX(Simple API XML)解析 事件驱动: PULL解析XML文件 Dom解析XML文 ...

  3. 前端笔试题总结---持续更新

    写在前面:.... 1字符串逆序 function reverse(str){return str.split("").reverse().join("");/ ...

  4. SQL笔试题(持续更新)

    1.    MySql默认存储引擎? 2.    常见的数据库产品有哪些? 3.    写出MySql常用命令:进入某个库,查询某个库中的所有表,创建数据库. 4.    请写出MySql常见的数据类 ...

  5. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(4)

    推荐文章: VUE之VUEX常见面试题大全汇总--史上最全[vuex面试题] 前端面试题之HTML+CSS(持续更新)_勤动手多动脑少说多做厚积薄发-CSDN博客1.行内元素和块级元素?img算什么? ...

  6. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(8)

    推荐文章: VUE之VUEX常见面试题大全汇总--史上最全[vuex面试题] 前端面试题之HTML+CSS(持续更新)_勤动手多动脑少说多做厚积薄发-CSDN博客1.行内元素和块级元素?img算什么? ...

  7. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(3)

    推荐文章: VUE之VUEX常见面试题大全汇总--史上最全[vuex面试题] 前端面试题之HTML+CSS(持续更新)_勤动手多动脑少说多做厚积薄发-CSDN博客1.行内元素和块级元素?img算什么? ...

  8. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(1)

    推荐文章: VUE之VUEX常见面试题大全汇总--史上最全[vuex面试题] 前端面试题之HTML+CSS(持续更新)_勤动手多动脑少说多做厚积薄发-CSDN博客1.行内元素和块级元素?img算什么? ...

  9. 面试1:Java、微服务、架构常见面试题(持续更新中)

    Java.微服务.架构常见面试题(持续更新中) 文章目录 Java.微服务.架构常见面试题(持续更新中) ==**Java**== 1.Java概述 (1)JVM.JRE和JDK (2)Java特点 ...

最新文章

  1. c/c++中的const
  2. python的迭代器无法输出值_python迭代器和生成器
  3. 电脑word在哪_word是什么?小学生:单词,大学生:论文排版工具
  4. php自动采集入库,Phpcms v9自动采集入库自动发布组件
  5. android studio:aar文件出现问号,导入不生效解决
  6. 树莓派学习路程No.1 树莓派系统安装与登录 更换软件源 配置wifi
  7. 手把手教你编写一个简单的PHP模块形态的后门
  8. 【笔记】ubuntu 16.04 centos 7如何配置sudo权限
  9. 开放大学毕业生自我鉴定计算机,开放大学毕业自我鉴定4篇
  10. display:kms-panel-4.14kernel
  11. 浏览器自动化操作(Web Browser Automation)(一)
  12. System has not been booted with systemd as init system (PID 1). Can‘t operat
  13. 一个计算机网络典型系统可由,计算机网络基础试题2.doc
  14. 苹果保修期多久_二手苹果手机怎么验机?
  15. Python将指定文件批量复制到多个文件夹并重命名
  16. 全球排名前十的美资投行由于全球业务增长速度较快,需要及时补充技术人员,将于3月4日(周六)在其上海office举办Super Saturday的招聘活动,招聘33名Java开发工程师。欢迎积极报名并推
  17. springboot实现短信发送验证码及消息队列发送注册成功短信
  18. (批处理)把文件夹中所有的照片按拍摄日期和时间批量重命名
  19. ModuleNotFoundError: No module named ‘model‘
  20. (转)Win10上安装任意版本的.net framework

热门文章

  1. 计算机散热方式有哪几种,电脑的最佳散热方式
  2. 曾哥传——番外篇(三)一对姐妹同时爱上我,如何是好
  3. hexo在github上搭建个人博客详细步骤
  4. Somethings about Floors题解
  5. Paragon NTFS2023Mac读取、写入外置移动硬盘软件
  6. 华为联运游戏或应用审核驳回:使用花币充值时,对支付延时处理不当,导致商品不到账2021-05-24
  7. 龙之谷服务器互通信息,龙之谷手游 9月1日服务器数据互通公告!
  8. html 提示语为英文,英文版温馨提示语.doc
  9. [Vulnhub] Narak
  10. 初识DDD-理解基本概念