2018-09-26 23:40:03
虽然是第一次参加,但这次的笔试完成结果让我不是很满意,因为有几道超简单的字符串编程没有做,忘了或者是想复杂了,还有一些概念题不是很清楚,自己糊弄过去的,不过之前没有复习过,还有心理准备,接下来进入主题吧。
1、进程和线程是什么?两者有什么联系?
进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
线程:进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,线程自己基本不拥有系统资源,只拥有一一点在运行时必不可少的资源(如程序计数器,一组寄存器和栈),但是他可与同属于一个进程的其他的线程共享进程所拥有的全部资源。
2、数组与链表的区别。
参考自http://blog.csdn.net/qq_25806863/article/details/70607204
数组:
链表:
数组的优点:
缺点:
链表的优点:
缺点:
3、get与post的区别。
参考自:https://blog.csdn.net/qq_26360877/article/details/70665820?utm_source=copy
了解历史
get和post是HTTP与服务器交互的方式,
说到方式,其实总共有四种:put,delete,post,get。
他们的作用分别是对服务器资源的增,删,改,查。
所以,get是获取数据,post是修改数据。
但是,现在大家都不这么干了!
只用一个方式就可以做增删查减的操作。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
区别分析
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效率高!。
4、概述反射和序列化。
序列化:序列化—将数据分解成字节流,以便存储在文件中或在网络上传输。
反射:反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息。
5(编程)、试判断该字符串是否对称。
1 public class Issymmetry { 2 public static void main(String[] args) { 3 String str = "sdsssds"; 4 System.out.println(Issym(str)); 5 6 } 7 public static int Issym(String str){ 8 double len = Math.floor(str.length()*1.0/2); 9 for(int i = 0 ; i < len ; i ++){ 10 if(str.charAt(i) != str.charAt(str.length() - i - 1)){ 11 return 0; 12 } 13 } 14 return 1; 15 } 16 }
6(编程)、冒泡排序
冒牌排序:从前往后,依次比较相邻的两个数,把较大的数放到后面。一次循环,可以在当前最末尾位置得到一个当前最大值。
1 import java.util.Arrays; 2 public class Bubble { 3 public static void main(String[] args) { 4 int[] arr = {5,6,2,3,2,9,7}; 5 sort(arr); 6 System.out.println(Arrays.toString(arr)); 7 } 8 9 public static void sort(int[] arr){ 10 //依次将最大的数放置到数组末尾,将第二大的数放到倒数第二位... 11 for(int i = 0;i < arr.length-1;i++){ 12 //从前往后,比较相邻两个数,把大的放在后边.之前已放置成功的可以不再参与比较 13 for(int j = 1;j < arr.length-i;j++){ 14 if(arr[j-1]>arr[j]) { 15 int temp=arr[j-1]; 16 arr[j-1] = arr[j]; 17 arr[j] = temp; 18 } 19 } 20 } 21 System.out.println(arr); 22 23 } 24 }
7(编程)、单例设计模式
1 /** 2 * 饿汉式 3 * 当对象太大,所以代码在加载到静态域中就直接创建对象 4 * 5 * 优点:a.节约了时间 6 * 缺点:b.消耗了空间 7 * 8 */ 9 public class User1 { 10 /** 11 * 第三步:提供一个静态成员变量并且初始化 12 */ 13 private static User1 u = new User1(); 14 /** 15 * 第一步:将构造方法私有化 16 */ 17 private User1(){ 18 19 } 20 21 /** 22 * 第二步:提供一个静态方法,并且返回值时当前类的类型 23 * @return 24 */ 25 public static User1 getInstance() { 26 return u;//在静态方法内,只能调用静态成员,所以将u静态化 27 } 28 } 29 30 /** 31 * 懒汉式: 32 * 当对象小的时候,在需要创建对象时再创建。 33 * 优点:节约了空间 34 * 缺点:消耗了时间 35 * 36 * @author Administrator 37 * 38 */ 39 public class User2 { 40 private static User2 u; 41 private User2(){ 42 43 } 44 45 public static User2 getInstance() { 46 if(u == null){ 47 u = new User2(); 48 } 49 return u;//在静态方法内,只能调用静态成员,所以将u静态化 50 } 51 52 }
8(编程)、在一个字符串内,将另一个字符串中出现的字符删除,例str1 = "hello World",str2 = "hei john" ,输出应为"IIWrld"
1 public class ReplaceStr { 2 public static void main(String[] args) { 3 String str1 = "hello World"; 4 String str2 = "hei john"; 5 for(int i = 0 ; i < str2.length() ; i ++){ 6 str1 = str1.replaceAll(str2.substring(i,i+1), ""); 7 } 8 System.out.println(str1); 9 } 10 }
原文:https://www.cnblogs.com/ZJJCodeLife-520/p/9710812.html