ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Java实训阶段查漏补缺复习笔记2

Java实训阶段查漏补缺复习笔记2 第一部分JavaSE基础1.1 数据类型类型说明基本类型8种byte、short、int、long、float、double、char、boolean引用类型类、接口、数组自动转换小到大强制转换大到小可能丢精度Integer缓存-128~127该区间可以超过用equals1.2 IDEA基础环境变量JAVA_HOME、Pathjava -version能跑就行常用快捷键快捷键功能psvm/sout/fori/iter快速生成代码AltInsert生成构造、get/setCtrlAltL格式化CtrlD复制行CtrlY删除行AltEnter提示DebugF7步入、F8步过、F9恢复、ShiftF8跳出1.3 语法基础标识符字母、数字、下划线、$不能数字开头进制0b二进制、0八进制、0x十六进制运算符算术、赋值、比较、逻辑、三元、位运算带符号、无符号流程控制if-elseswitch注意case穿透循环while/do-while/for方法static类级别final不能重写访问控制private/public/protected/default数组一维二维注意越界和空指针1.4 面向对象封装、继承、多态内部类、匿名内部类抽象类abstract、接口interface向上转型自动向下转型强转先instanceofObjectequals、hashCode、toString、getClass、wait、notify1.5 基础工具API类别内容包装类基本类型的对象形式String不可变常量池拼接用StringBuilder日期Date、Calendar、SimpleDateFormatJDK8后用LocalDateTime集合ListArrayList/LinkedList、SetHashSet/TreeSet、MapHashMap/TreeMapFile文件操作Random随机数RandomAccessFile随机读写seek指针HashMap重点put过程、扩容、线程不安全1.6 IO流流类型说明字节流InputStream/OutputStream字符流Reader/Writer缓冲流提高效率转换流字节字符对象流序列化/反序列化1.7 异常ThrowableError和Exception运行时异常 vs 编译时异常try-catch-finallyfinally一定执行1.8 多线程创建方式Thread、Runnable、Callable生命周期同步synchronized、Lock线程池1.9 网络编程TCPSocket/ServerSocketUDPDatagramSocket/DatagramPacket粘包拆包第二部分JavaEE全栈2.1 前端基础技术要点HTML/CSS标签语义化div/span区别块级vs行内CSS选择器类选择器、ID、伪类hover布局Flex布局必须熟justify-content、align-itemsJavaScriptDOM操作获取元素、修改内容、事件监听ES6let/const、箭头函数、Promise异步回调地狱解法JSON前后端交互数据格式parse/stringify转换jQuery选择器$()搞定一切AJAX封装$.get/$.post比原生XMLHttpRequest好用链式编程一行代码改样式加动画2.2 AJAX与异步交互原理异步刷新不重新加载整个页面局部更新数据XMLHttpRequest对象核心JSON交互后端返回JSON字符串→前端解析成JS对象Content-Type: application/json别忘设跨域问题同源策略协议域名端口必须一致解决CORS后端配Access-Control-Allow-Origin、JSONP老技术2.3 Tomcat与服务器部署Tomcat配置server.xml改端口8080容易冲突改成80或8088webapps目录放war包或项目文件夹的地方IDEA集成Artifacts配置打包方式exploded vs archiveDeployment部署路径/还是/projectnameHTTP协议速记GET vs POST参数放URL还是Body安全性长度限制状态码200OK、302重定向、404找不到、500服务器炸了2.4 JavaWeb核心Servlet/JSPServlet生命周期init() → service() → destroy()单例模式线程安全问题要注意web.xml配置 vsWebServlet注解注解方便Request ResponseRequestgetParameter()、setAttribute()转发用ResponsegetWriter().write()输出流、sendRedirect()重定向会话管理Cookie存在客户端不安全存个JSESSIONID就行Session存在服务器依赖Cookie用户登录状态全靠它ServletContext全局共享整个应用就一个别乱存大数据2.5 数据库技术MySQLJDBCSQL语句复习DDLCREATE/ALTER/DROP建表改表删表DMLINSERT/UPDATE/DELETE增删改数据DQLSELECT...WHERE...GROUP BY...HAVING...ORDER BY查询最复杂多练多表查询内连接INNER JOIN、左外连接LEFT JOIN以左表为准事务控制ACID特性原子性、一致性、隔离性、持久性隔离级别读未提交→读已提交→可重复读MySQL默认→串行化脏读、幻读概念要分清JDBC编程步骤加载驱动→获取连接→创建Statement→执行SQL→处理结果→释放资源PreparedStatement预编译防SQL注入别用Statement拼接字符串连接池Druid/HikariCP复用连接2.6 XML与解析用途配置文件以前Spring/MyBatis全用xml现在被注解替代了不少数据传输现在基本被JSON取代解析方式DOM一次性加载到内存树结构适合小文件增删改查方便SAX逐行读取事件驱动适合大文件只能读不能改2.7 反射与注解框架基石反射Class.forName()动态加载类getDeclaredMethod/Field获取私有方法/属性setAccessible(true)暴力破解框架底层全靠反射实例化对象解耦注解元注解Target、Retention生命周期自定义注解配合反射使用解析器读取注解信息做逻辑2.8 MyBatis框架核心概念ORM对象关系映射Java对象数据库记录SqlSessionFactoryBuilder → SqlSessionFactory → SqlSession线程不安全用完就关Mapper代理开发接口名 XML namespace方法名 id参数类型 parameterType#{}是占位符安全${}是字符串拼接有注入风险排序时用动态SQLif条件判断自动去掉多余的AND/ORforeach批量删除/插入神器id in ...缓存一级缓存SqlSession级别默认开二级缓存Mapper级别得手动配分布式下容易脏数据慎用2.9 Spring框架IOC控制反转Bean容器ApplicationContext注入方式Autowired按类型、Resource按名称作用域singleton默认单例、prototype多例AOP面向切面解耦把日志、事务、权限从业务代码里剥离出来术语切面、切入点Pointcut、通知Before/After/Around动态代理JDK代理基于接口vs CGLIB基于子类继承事务管理Transactional加在Service层声明式事务传播行为REQUIRED默认有就加入没有就新建、REQUIRES_NEW挂起旧的开新的2.10 SpringMVC框架流程DispatcherServlet前端控制器→ HandlerMapping → Controller → ViewResolver注解开发Controller/RestController直接返回JSON不用视图解析器RequestMapping/GetMapping/PostMapping参数接收简单类型直接接POJO自动封装RequestParam指定名字RequestBody接JSON拦截器HandlerInterceptorpreHandle登录校验、postHandle、afterCompletion比Filter更细粒度能访问Controller上下文2.11 SpringBoot核心优势约定大于配置起步依赖Starter自动配置AutoConfiguration内嵌Tomcat打成jar包直接java -jar运行不用部署war包配置文件application.yml/properties端口、数据库连接、日志级别Value(${key})读取配置值ConfigurationProperties批量映射配置到Bean整合其他框架spring-boot-starter-webWeb开发全家桶spring-boot-starter-test单元测试神器2.12 未学部分速览技术说明MyBatisPlus内置通用CRUD不用写简单SQL。条件构造器Wrapper能链式拼条件。代码生成器省得手写实体类。Redis内存数据库主要做缓存。Key-Value结构支持String/List/Hash/Set/ZSet。持久化机制RDB/AOF还没看。分布式锁好像也靠它。SpringCloud(Alibaba)微服务全家桶。Nacos注册中心配置中心、Sentinel限流熔断、Gateway网关。目前只听过名词完全没上手感觉是后面大项目的重点。附录核心易错点速查表类别易错点正确理解Integer缓存所有值都用-128~127区间可用超过用equals数组传参用sizeof算数组长度退化成指针sizeof变小String用频繁拼接用StringBuilderHashMap以为线程安全线程不安全多线程用ConcurrentHashMapfinally以为可以不执行finally一定执行Servlet以为每次请求都新建单例模式注意线程安全Cookie vs Session混淆两者Cookie存客户端Session存服务器Statement用Statement拼SQL用PreparedStatement防注入#{}vs${}混用#{}防注入${}仅排序用AOP代理混淆JDK和CGLIBJDK基于接口CGLIB基于子类继承SpringBoot以为要部署war包内嵌Tomcat打jar包直接运行
返回列表