补码加减法运算公式 公式 习题 答案 补码加减法运算的溢出检测 溢出概念 计算机的字长是有限的,因此所能表示的数据范围也是有限的。 当运算结果超出所能表示的数据范围时,就会出现溢出 溢出会导致错误的运算结果 计算机系统设计人员必须要做好溢出处理 溢出检测 方法一: 这个其实是很简单的道理: 正数加正数等于负数 负数加负数等于正数 方法二 方法三 答案 一位全加器的硬件逻辑实现 手工进行二进制加法 得出一位二进制加法的真值表 逻辑表达式 组合逻辑电路 符号 串行进位加法器的硬件逻辑实现(暂未写)
虽然JSP为我们带来了便捷,但是其缺点也是显而易见的,那么有没有一种既能实现模板,又能兼顾前后端分离的模板引擎呢? 有的兄弟有的,就是Thymeleaf模板,是一个适用于Web和独立环境的现代化服务器端Java模板引擎。 我们这边先写一个Servlet和html来看看效果怎么样: 123456789101112131415161718@WebServlet("/index")public class HelloServlet extends HttpServlet { TemplateEngine engine; @Override public
我们之前的写法都是前端负责动态显示,后端负责数据处理,这其实是当今最流行的一种前后端分离写法,而早期的JSP并不是这样的,他会在前端中写入后端代码,已经是一种过时的写法,了解即可。(会导致前后端严重耦合。) JSP其实更像是一种HTML创作模版,举个最简单的例子就是上面有一堆TextBox之类的,而我们输入完成后会返回给我们真正的HTML页面,有没有一种基于此JSP创作HTML的感觉。 我们的项目默认servlet是会打开index.jsp或者*.jsp页面的,我们先来看一下jsp文件长什么样子: 12345678910111213<%@ page contentType="t
只有授权的用户才能访问一些页面,如果我们一个一个配置还是太复杂了,所以我们可以用过滤器来进行统一管理页面。我只有过滤器允许的才会到达对应的Servlet,就像一堵墙,而且我们可以设置多层。 添加过滤器 非常简单,实现Filter接口就好了: 1234567@WebFilter("/*") //路径的匹配规则和Servlet一致,这里表示匹配所有请求public class TestFilter implements Filter { @Override public void doFilter(ServletRequest servletReq
这个东西反而没那么难,我们来解释下 Session是服务器上的东西,有很多很多。而我们浏览器会对应一个Session,对应的方式就是我们浏览器Cookie会自带一串密钥,对应上服务器上的Session。我们可以通过请求头里面的密钥来控制服务器上的Session,也就是后端上面的。我们在Cookie当中有一个问题,就是如何让用户没登陆的情况下,也就是服务器没记住的情况下禁止没登陆前往首页。 JSESSIONID 这个 Cookie,是服务器自动生成、自动发送的,不是你自己写的! 浏览器第一次访问服务器时,就会自动拥有! 那么现在,我们在用户登录成功之后,将用户对象添加到Session中,只要
它可以在浏览器中保存一些信息,并且在下次请求时,请求头中会携带这些信息。 我们先来写一个Cookie: 123456// 1. 创建一个名叫 test,值是 yyds 的 CookieCookie cookie = new Cookie("test", "yyds");// 2. 把 Cookie 交给响应 → 让浏览器保存resp.addCookie(cookie);// 3. 让浏览器跳转到 /time 路径resp.sendRedirect("time"); 只需要一次后,我们浏览器访问同域名下的所有地址,都会携带一个Cooki
由官方定义的一系列借口,如Tmocat,最后交给Web服务器来运行我们编写的Servlet。 不再是直接由Tomcat服务器发送编写好的静态网页内容如HTML文件,而是由我们通过JAVA代码进行拼接,更好地实现动态网页。 注册Servlet 这里的test是访问路径,我们HTTP协议URL中最后就是端口或者路径。 123456789101112131415161718192021222324252627@WebServlet("/test")public class TestServlet implements Servlet{ @Override publ
什么是Maven Maven翻译过来是“专家“,是一个纯java开源项目。通过Maven,可以帮助我们做: 项目的自动构建,包括代码的编译、测试、打包、安装、部署等操作。 依赖管理,项目使用到哪些依赖,可以快速完成导入。 把项目打包成jar或者从外部导入jar库包,就像我们之前学习一样,Jar包越来越多。所以我们需要一个更好的管理方式来导入这些Jar包。 Maven也需要环境,不过Idea自带。 我们如果创建好Maven项目后,会发现有如下不同: Maven项目 我们先创建一个Maven项目,里面长这样。 java包:我们的代码一般写在java文件包当中。 resources:J
尝试JUT JDK自带的日志系统也就是JUT,如果我们一直用System.out.println()来在控制台输出信息的话,我们有时候还得找这个东西在哪,如果调试算法题的话应该深有体会。那么Java自己就有一个类java.util.logging包下,实现日志打印: 12345678public class Main { public static void main(String[] args) { // 首先获取日志打印器 Logger logger = Logger.getLogger(Main.class.getName());
导入包 肯定要导入包的啦 @Test 我们可以直接在无参方法前面加上@Test注解,这样我们在Idea编译器中可以直接运行这个方法进行调试。 方法必须是public的 不能是静态方法 返回值必须是void 必须是没有任何参数的方法 断言 对于一个测试用例而言,我们想知道是否最后结果值符合我们的期望值,如果不符合就运行失败。 1234567public class TestMain { @Test public void method(){ System.out.println("我是测试案例!"); A