0
点赞
收藏
分享

微信扫一扫

【2月6日 刷题笔记】

驚鴻飛雪 2022-02-07 阅读 98

今天大雪 走在路上有时候很清晰 有时候很模糊

目录

01选择题

进程的状态

Ajax应用 程序的优势在于

Tomcat的默认端口是

Tomcat中 webapps目录的作用是

DNS协议的作用是

02编程题

Lee_184 部门工资最高的员工

Lee_451 根据字符出现的频率排序

03选择题

下面属于TCP 协议的可靠性机制()

TCP和UDP的区别

网络通信中,出现粘包的问题,可以采用下面的那种方案来解决

线程池的作用是

以下关于CAS的说法中,正确的是

编程04

Lee_784:字母大小写的全排列


01选择题

进程的状态

创建态

运行态

阻塞态

终止态

题解:
进程的状态包括:创建态、就绪态、运行态、阻塞态、终止态

Ajax应用 程序的优势在于

通过异步模式 提升了用户的体验

优化了浏览器 和服务器之间的传输,减少了不必要的数据往返 减少了带宽占用

通过Ajax技术可实现只更新局部页面而不需要刷新整个页面

不适用Ajax 技术,就不能实现文件的上传和下载

js是单线程的方式来执行。Ajax可以不刷新页面 基于异步的方式 发送请求后,经过一段时间,等接收到响应的数据后,再执行Ajax回调方法。
不使用Ajax就需要刷新整个页面  数据量更多
不使用Ajax也可以实现文件的上传和下载  例如form表单上传文件

Tomcat的默认端口是

80

8080

443

8888

Tomcat的默认端口是8080
80是http协议的默认端口  也就是浏览器中不输入端口号是,默认发送http数据到80端口
443是https协议的默认端口

Tomcat中 webapps目录的作用是

部署web应用

存放日志文件

存放配置文件

存放可执行程序

tomcat中的常用目录有:
bin:存放各种启动 停止的脚本
conf:相关的配置文件
lib:运行Tomcat需要的类库
logs:运行时的日志文件 我们有时需要查看日志来发现一些问题
webapps:存放要运行的 web application 的文件夹

DNS协议的作用是

根据IP地址获取MAC地址

根据域名获取IP地址

将私网IP转换为公网IP

将私网端口地址转换为公网端口

DNS协议
DNS协议就是用来将域名解析到IP地址的一种协议,也可以将ip地址转换为域名的一种协议
DNS协议基于UDP和TCP协议  端口号53,用户到服务器采用UDP ,DNS服务器采用TCP
大型的互联网公司、运营商会向公众提供免费的DNS服务,阿里巴巴223.5.5.5   223.6.6.6
​
​

02编程题

Lee_184 部门工资最高的员工

​
​

Lee_451 根据字符出现的频率排序

class Solution {
    public String frequencySort(String s) {
        Map<Character,Integer> map = new HashMap<>();
        for (char c : s.toCharArray()) {
            map.put(c,map.getOrDefault(c,0)+1);
        }
        // 添加在map中  并且记录 加去重
        List<Character> list = new ArrayList<Character>(map.keySet());
        // 添加自己的默认的比较器
        Collections.sort(list,(a,b) -> map.get(b) - map.get(a));
        // 排序之后的队列
        StringBuffer stringBuffer = new StringBuffer();
        int size = list.size();
        
        for (int i = 0; i < size; i++) {
            char ch = list.get(i);
            //得到每一个字符的 V值  
            int fre = map.get(ch);
            // 此时得到的去重的 字符  再根据V值 重新拼接起来 整个的字符串
            for (int j = 0; j < fre; j++) {
                stringBuffer.append(ch);
            }
        }
      return stringBuffer.toString(); 
    }
}
​
​
java中的Collections.sort() 的使用!
在map、set、List 等集合当中  都提供了一个排序的方法 sort()
Collections.sort(list,new PriceComparator())
参数一:需要排序的list
参数二:比较器,实现Comparator 接口的类 返回一个int型的值,就相当于一个标志
告诉sort按照怎样的方法按照什么样的顺序进行排序。
​
Comparator 是个接口  可以重写compare() equals()这两个方法,用于比较的功能
如果是null的话就是使用元素默认的顺序
​
compare(a,b)方法:根据第一个参数小于、等于、或者大于第二个参数分别返回负整数、零或者正整数
equals(obj)方法:当指定的对象也是一个Comparator,并且强行实施与此Comparator相同的
排序时才返回true。
​
​

03选择题

下面属于TCP 协议的可靠性机制()

确认应答机制

超时重传机制

流量控制

滑动窗口

TCP协议的可靠性保证机制
确认应答机制
超时重传机制
连接管理机制
流量控制
拥塞控制
效率机制有:
滑动窗口
延迟应答
捎带应答

TCP和UDP的区别

TCP是传输层协议,UDP是网络层协议

TCP是有链接的可靠性协议,UDP是无连接的不可靠协议

TCP是面向字节流,UDP是面向数据报

TCP既有发送缓冲区,也有接收缓冲区;UDP只有接收缓冲区。

tcp和udp都是传输层协议
​
tcp和udp的区别:
**TCP是有链接的可靠性协议,UDP是无连接的不可靠协议**
​
**TCP是面向字节流,UDP是面向数据报**
​
**TCP既有发送缓冲区,也有接收缓冲区;UDP只有接收缓冲区。**
​

网络通信中,出现粘包的问题,可以采用下面的那种方案来解决

使用TCP协议

使用UDP协议

换一个速度快 的网络

明确应用数据包的边界

粘包是应用层数据包的边界不明确  的情况下发生了粘连。
TCP是面向字节流会出现粘包
UDP是面向数据报,数据报的大小是确定的 不存在粘包
解决粘包,具体就是定义明确的应用层协议,明确应用层数据包边界。

线程池的作用是

降低资源的消耗:通过重用已经创建的线程来降低线程创建和销毁的消耗

提高响应速度:任务到达时不需要等待线程的创建就可以立即执行

提高线程的可管理性:线程池可以统一管理、分配、调优和监控

以上都是

线程的创建和销毁都是比较消耗性能的  线程池会启动多个线程  每个线程可以重复执行 任务,不用每一个任务都创建线程,执行完就终止,这样的消耗更大。
​

以下关于CAS的说法中,正确的是

CAS是悲观锁

CAS是乐观锁

CAS可以替代synchronized

CAS可以替代volatile

CAS是基于乐观锁设计思想的一种实现,将变量比较并交换 底层是基于系统和CPU 提供的接口实现。

编程04

​
​

Lee_784:字母大小写的全排列

class Solution {
    public List<String> letterCasePermutation(String S) {
        List<StringBuilder> ans = new ArrayList();
        ans.add(new StringBuilder());
​
        for (char c: S.toCharArray()) {
            int n = ans.size();
            if (Character.isLetter(c)) {
                for (int i = 0; i < n; ++i) {
                    ans.add(new StringBuilder(ans.get(i)));
                    ans.get(i).append(Character.toLowerCase(c));
                    ans.get(n+i).append(Character.toUpperCase(c));
                }
            } else {
                for (int i = 0; i < n; ++i)
                    ans.get(i).append(c);
            }
        }
​
        List<String> finalans = new ArrayList();
        for (StringBuilder sb: ans)
            finalans.add(sb.toString());
        return finalans;
    }
}
​
作者:LeetCode
链接:https://leetcode-cn.com/problems/letter-case-permutation/solution/zi-mu-da-xiao-xie-quan-pai-lie-by-leetcode/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
​
将小写字母转换为大写字母
使用String的toUpperCase()方法
使用char charAt(int index)方法 获取指定下标index位置上的字符
​
public class Convert {
    public static void main(String[] args) {
        String s1="adhsvf";
        StringBuilder sb=new StringBuilder();
        for(int i=0;i<s1.length();i++) {
            char temp=s1.charAt(i);
            if (temp>='a' && temp<='z') {
                char cc=(char)(temp-32);
                sb.append(cc);
            }else 
                sb.append(temp);
        }
        System.out.println(sb);
    }
}
​
举报

相关推荐

【2月1日的刷题笔记】

8月6日笔记

2024年2月6日

刷题笔记2

3月2日学习笔记

3月6日

0 条评论