disconnect(程序员常说的底层是指什么)
资讯
2023-11-28
479
1. disconnect,程序员常说的底层是指什么?
程序员所说的底层是一个很魔幻的概念,那些年,不了解的,但是会用到的一些未知的技术项,都习惯以“底层”来命名。随着在 Java 程序员的路上越走越远,踩过坑的越来越多,才对“底层”有一点儿较为模糊的概念,简单的说一说,姑且说之,姑妄听之,娱乐为主。
刚参加工作时,使用 Spring MVC + Dubbo 的技术栈,经常对一个应用进行包划分,以dao、service、web等模块来命名,那时对我们来说,dao层、service层相对于web就是底层,web只要获取 service 层或 dao 层拿到数据,他不会在意你使用 mybatis 或者 hibernate 来进行数据查询,哪怕你直接使用 jdbcTemplate 也得行,前提是需要处理好 sql 注入的问题,使用 jdbcTemplate 的字符串拼接的 sql ,很容易导致 sql注入,需要注意。
而无意中接触到 Tomcat 的底层原理解析,从源码角度解析 Tomcat,讲解TCP、Http、Socket、Tomcat之间的关系,Engine---->Host---->Context---->Wrap---->Servlet之间的组织结构,可谓干货满满,但是真心没有消化多少。记得最清楚的是关于TCP和UDP协议的底层描述。Socket是Java中对通信协议的封装,其屏蔽的底层的TCP协议和UDP协议等,通过跟踪 Socket 的源码,最终定位到 TCP协议和UDP协议的都是通过 java.net.DualStackPlainDatagramSocketImpl 中的本地方法(native)和操作系统交互的,而操作系统实现了相关的本地方法,并且不同的操作系统对相关的本地方法实现逻辑不同,但都可以完成通信的功能。涉及到的本地方法如下:
class DualStackPlainDatagramSocketImpl extends AbstractPlainDatagramSocketImpl
{
。。。。。。
/* Native methods */
private static native void initIDs();
private static native int socketCreate(boolean v6Only);
private static native void socketBind(int fd, InetAddress localAddress,
int localport, boolean exclBind) throws SocketException;
private static native void socketConnect(int fd, InetAddress address, int port)
throws SocketException;
private static native void socketDisconnect(int fd);
private static native void socketClose(int fd);
private static native int socketLocalPort(int fd) throws SocketException;
private static native Object socketLocalAddress(int fd) throws SocketException;
private static native int socketReceiveOrPeekData(int fd, DatagramPacket packet,
int timeout, boolean connected, boolean peek) throws IOException;
private static native void socketSend(int fd, byte[] data, int offset, int length,
InetAddress address, int port, boolean connected) throws IOException;
private static native void socketSetIntOption(int fd, int cmd,
int optionValue) throws SocketException;
private static native int socketGetIntOption(int fd, int cmd) throws SocketException;
native int dataAvailable();
}
如上所述,相对于普通Web应用而言,Tomcat 是底层,而相对于Tomcat 而言,其底层的通信能力是底层,即Socket是底层,而相对的那些本地方法(native)也是底层。如果再往底层跟,由于Linux是开源的,其TCP协议的三次握手等源码可以看到,其实现的tcp_connect(struct sock *sk)、tcp_send_synack(struct sock *sk)、tcp_send_ack(struct sock *sk,u32 rcv_nxt)d的三次握手过程就更是底层。
底层是一个相对的概念,随着你经历的越多,会发现底层的范围越广,而对于Java技术栈的同学,JVM、中间件实现原理、各种框架如Netty、Spring等源码底层都是我们努力的方向。这些内容一般情况下很少接触到,但是一旦遇到,就是我们脱颖而出的机会。
作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。
![disconnect(程序员常说的底层是指什么)](/static/artimg/20231127/6563f0da50bbc.jpg)
2. disconnect?
do not disconnect USB cable during the software updatel 表示“当软件升级的时候,(请)不要断开USB(与电脑的)连接线”这是手机的操作系统正在通过电脑进行升级的提示。应该是电脑已经下载了较新版本的手机操作系统,然后手机通过USB线连接到电脑,并且装在电脑上的手机管理软件得到了你的授权,对通过USB连接的手机的操作系统进行升级。
电脑正在把手机的操作系统文件写入手机的储存中,此过程不可中断,若中断则导致升级失败,可能导致手机无法开机,甚至无法恢复,只能返厂维修或是换主板。等电脑对手机的操作系统升级完成后,手机会重新开机,电脑也会有提示升级完成。
3. hdmi线怎么从显卡上拔下来?
显示器的连接状态,可以通过两个位置看xrandr和/sys/class/drm/card0-HDMI-A-1/status。
xrandr会打印出来所有的显示器信息的全部信息,包括主屏位置,显示模式(复制或者扩展),支持的分辨率等等。或者是可以看/sys/class/drm/card0-HDMI-A-1/status。
这两个状态有一点区别是:xrandr是调用drm提供的接口读取显示器状态,而sys下的状态是drm每次更新状态之后填进去的。
因此在这个问题的上下文中,拔出hdmi线,在sys下看到状态是connected,但是执行xrandr之后,状态就更新为disconnect。不难看出,第一次驱动判断hdmi状态出错了,第二次判断是对的。接下来要分析的事,hdmi热插拔之后驱动做了什么事,具体定位是哪里判断出错了。
4. 我的ipodclassic80G上一直显示OKtodisconnect?
ipod classic白屏显示Ok To Disconnect:意思为可以断开连接。 如果一直出现此状态则为“死机”。操作为:
1.重启机器,长按MENU和中间的圆键6秒,之后出现苹果logo。
2.连接电脑itunes恢复系统。
5. classic屏幕上显示Do?
ipod classic 屏幕上显示“Do not disconnect":当ipod连接itunes后,会把ipod上的一些数据同步到itunes上就会出现此提示。 如果该状态一直存在,建议:
1.重启机器,长按MENU和中间的圆键6秒,之后出现苹果logo。
2.连接电脑itunes恢复系统。
6. Usbcableduringthesoftwareupdate是什么意思?
1、没有关系,这是刷机的正常现象,通常需要几分钟时间(与CPU的运算速度无关)。
2、donotdisconnectusbcableduringthesoftwareupdate就是提醒用户在刷机期间千万不要断开usb连线(即手机与电脑之间的usb线缆连接)。
3、通常该过程可通过电脑上的刷机软件画面进行监视,但信息量并不多,个别软件还有一个进度条,但在更新步骤时也几乎一动不动。除了等待,就是等待。
4、在此期间,不要移动或操作手机,最好也不要在电脑上启动其它应用软件,以免干扰,甚至中断刷机进程。
5、刷机前,一定要确定手机电量充足,尽管在usb连接情况下会自动充电,小心一点总不是坏事。
6、如果超过10分钟依然没有结束,注意电脑前面板上的运行指示灯是否在高速闪烁状态,如在高速闪烁,再等待3分钟后现象一样,可基本断定刷机失败;如处于正常闪烁,则亦可判断刷机进程被挂起即失败。
7、必须提醒一点,刷机过程中是需要连线上网的,如果网络意外中断,应试着小心恢复网络,再注意后续观察即可。
7. 什么是DQL?
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。
1.数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT<字段名表>FROM<表或视图名>WHERE<查询条件>
2.数据操纵语言数据操纵语言DML主要有三种形式:1)插入:INSERT2)更新:UPDATE3)删除:DELETE3.数据定义语言DDL数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如:CREATETABLE/VIEW/INDEX/SYN/CLUSTER|||||表视图索引同义词簇4.数据控制语言DCL数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:1)GRANT:授权。2)ROLLBACK[WORK]TO[SAVEPOINT]:回退到某一点。回滚---ROLLBACK回滚命令使数据库状态回到上次最后提交的状态。其格式为:SQL>ROLLBACK;3)COMMIT[WORK]:提交。 在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。(1)显式提交用COMMIT命令直接完成的提交为显式提交。其格式为:SQL>COMMIT;(2)隐式提交用SQL命令间接完成的提交为隐式提交。这些命令是:ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。(3)自动提交若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:SQL>SETAUTOCOMMITON;
本站涵盖的内容、图片、视频等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系我们删除!联系邮箱:ynstorm@foxmail.com 谢谢支持!
1. disconnect,程序员常说的底层是指什么?
程序员所说的底层是一个很魔幻的概念,那些年,不了解的,但是会用到的一些未知的技术项,都习惯以“底层”来命名。随着在 Java 程序员的路上越走越远,踩过坑的越来越多,才对“底层”有一点儿较为模糊的概念,简单的说一说,姑且说之,姑妄听之,娱乐为主。
刚参加工作时,使用 Spring MVC + Dubbo 的技术栈,经常对一个应用进行包划分,以dao、service、web等模块来命名,那时对我们来说,dao层、service层相对于web就是底层,web只要获取 service 层或 dao 层拿到数据,他不会在意你使用 mybatis 或者 hibernate 来进行数据查询,哪怕你直接使用 jdbcTemplate 也得行,前提是需要处理好 sql 注入的问题,使用 jdbcTemplate 的字符串拼接的 sql ,很容易导致 sql注入,需要注意。
而无意中接触到 Tomcat 的底层原理解析,从源码角度解析 Tomcat,讲解TCP、Http、Socket、Tomcat之间的关系,Engine---->Host---->Context---->Wrap---->Servlet之间的组织结构,可谓干货满满,但是真心没有消化多少。记得最清楚的是关于TCP和UDP协议的底层描述。Socket是Java中对通信协议的封装,其屏蔽的底层的TCP协议和UDP协议等,通过跟踪 Socket 的源码,最终定位到 TCP协议和UDP协议的都是通过 java.net.DualStackPlainDatagramSocketImpl 中的本地方法(native)和操作系统交互的,而操作系统实现了相关的本地方法,并且不同的操作系统对相关的本地方法实现逻辑不同,但都可以完成通信的功能。涉及到的本地方法如下:
class DualStackPlainDatagramSocketImpl extends AbstractPlainDatagramSocketImpl
{
。。。。。。
/* Native methods */
private static native void initIDs();
private static native int socketCreate(boolean v6Only);
private static native void socketBind(int fd, InetAddress localAddress,
int localport, boolean exclBind) throws SocketException;
private static native void socketConnect(int fd, InetAddress address, int port)
throws SocketException;
private static native void socketDisconnect(int fd);
private static native void socketClose(int fd);
private static native int socketLocalPort(int fd) throws SocketException;
private static native Object socketLocalAddress(int fd) throws SocketException;
private static native int socketReceiveOrPeekData(int fd, DatagramPacket packet,
int timeout, boolean connected, boolean peek) throws IOException;
private static native void socketSend(int fd, byte[] data, int offset, int length,
InetAddress address, int port, boolean connected) throws IOException;
private static native void socketSetIntOption(int fd, int cmd,
int optionValue) throws SocketException;
private static native int socketGetIntOption(int fd, int cmd) throws SocketException;
native int dataAvailable();
}
如上所述,相对于普通Web应用而言,Tomcat 是底层,而相对于Tomcat 而言,其底层的通信能力是底层,即Socket是底层,而相对的那些本地方法(native)也是底层。如果再往底层跟,由于Linux是开源的,其TCP协议的三次握手等源码可以看到,其实现的tcp_connect(struct sock *sk)、tcp_send_synack(struct sock *sk)、tcp_send_ack(struct sock *sk,u32 rcv_nxt)d的三次握手过程就更是底层。
底层是一个相对的概念,随着你经历的越多,会发现底层的范围越广,而对于Java技术栈的同学,JVM、中间件实现原理、各种框架如Netty、Spring等源码底层都是我们努力的方向。这些内容一般情况下很少接触到,但是一旦遇到,就是我们脱颖而出的机会。
作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。
2. disconnect?
do not disconnect USB cable during the software updatel 表示“当软件升级的时候,(请)不要断开USB(与电脑的)连接线”这是手机的操作系统正在通过电脑进行升级的提示。应该是电脑已经下载了较新版本的手机操作系统,然后手机通过USB线连接到电脑,并且装在电脑上的手机管理软件得到了你的授权,对通过USB连接的手机的操作系统进行升级。
电脑正在把手机的操作系统文件写入手机的储存中,此过程不可中断,若中断则导致升级失败,可能导致手机无法开机,甚至无法恢复,只能返厂维修或是换主板。等电脑对手机的操作系统升级完成后,手机会重新开机,电脑也会有提示升级完成。
3. hdmi线怎么从显卡上拔下来?
显示器的连接状态,可以通过两个位置看xrandr和/sys/class/drm/card0-HDMI-A-1/status。
xrandr会打印出来所有的显示器信息的全部信息,包括主屏位置,显示模式(复制或者扩展),支持的分辨率等等。或者是可以看/sys/class/drm/card0-HDMI-A-1/status。
这两个状态有一点区别是:xrandr是调用drm提供的接口读取显示器状态,而sys下的状态是drm每次更新状态之后填进去的。
因此在这个问题的上下文中,拔出hdmi线,在sys下看到状态是connected,但是执行xrandr之后,状态就更新为disconnect。不难看出,第一次驱动判断hdmi状态出错了,第二次判断是对的。接下来要分析的事,hdmi热插拔之后驱动做了什么事,具体定位是哪里判断出错了。
4. 我的ipodclassic80G上一直显示OKtodisconnect?
ipod classic白屏显示Ok To Disconnect:意思为可以断开连接。 如果一直出现此状态则为“死机”。操作为:
1.重启机器,长按MENU和中间的圆键6秒,之后出现苹果logo。
2.连接电脑itunes恢复系统。
5. classic屏幕上显示Do?
ipod classic 屏幕上显示“Do not disconnect":当ipod连接itunes后,会把ipod上的一些数据同步到itunes上就会出现此提示。 如果该状态一直存在,建议:
1.重启机器,长按MENU和中间的圆键6秒,之后出现苹果logo。
2.连接电脑itunes恢复系统。
6. Usbcableduringthesoftwareupdate是什么意思?
1、没有关系,这是刷机的正常现象,通常需要几分钟时间(与CPU的运算速度无关)。
2、donotdisconnectusbcableduringthesoftwareupdate就是提醒用户在刷机期间千万不要断开usb连线(即手机与电脑之间的usb线缆连接)。
3、通常该过程可通过电脑上的刷机软件画面进行监视,但信息量并不多,个别软件还有一个进度条,但在更新步骤时也几乎一动不动。除了等待,就是等待。
4、在此期间,不要移动或操作手机,最好也不要在电脑上启动其它应用软件,以免干扰,甚至中断刷机进程。
5、刷机前,一定要确定手机电量充足,尽管在usb连接情况下会自动充电,小心一点总不是坏事。
6、如果超过10分钟依然没有结束,注意电脑前面板上的运行指示灯是否在高速闪烁状态,如在高速闪烁,再等待3分钟后现象一样,可基本断定刷机失败;如处于正常闪烁,则亦可判断刷机进程被挂起即失败。
7、必须提醒一点,刷机过程中是需要连线上网的,如果网络意外中断,应试着小心恢复网络,再注意后续观察即可。
7. 什么是DQL?
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。
1.数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT<字段名表>FROM<表或视图名>WHERE<查询条件>
2.数据操纵语言数据操纵语言DML主要有三种形式:1)插入:INSERT2)更新:UPDATE3)删除:DELETE3.数据定义语言DDL数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如:CREATETABLE/VIEW/INDEX/SYN/CLUSTER|||||表视图索引同义词簇4.数据控制语言DCL数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:1)GRANT:授权。2)ROLLBACK[WORK]TO[SAVEPOINT]:回退到某一点。回滚---ROLLBACK回滚命令使数据库状态回到上次最后提交的状态。其格式为:SQL>ROLLBACK;3)COMMIT[WORK]:提交。 在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。(1)显式提交用COMMIT命令直接完成的提交为显式提交。其格式为:SQL>COMMIT;(2)隐式提交用SQL命令间接完成的提交为隐式提交。这些命令是:ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。(3)自动提交若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:SQL>SETAUTOCOMMITON;
本站涵盖的内容、图片、视频等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系我们删除!联系邮箱:ynstorm@foxmail.com 谢谢支持!