Java其他特性
Java其它特性
1 关于JDK、JRE、JVM和Java编译器及Java解释器JDK是Java的开发工具包(SDK),提供了开发环境(编译器javac等工具,用于将java文件编译为class文件)以及运行环境JRE(JVM和Runtime辅助包,用于解析class文件使其得到运行)
JRE是Java运行环境,包含JVM和核心类库(的class文件)与支持文件(只要装了JRE就可以运行Java文件)
JVM:一种能够运行Java字节码(Java bytecode)的虚拟机。
字节码:字节码是已经经过编译,但与特定机器码无关,需要解释器转译后才能成为机器码的中间代码。
JVM:JVM有自己完善的硬件架构,如处理器、堆栈(Stack)、寄存器等,还具有相应的指令系统(字节码就是一种指令格式)。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM是Java平台无关的基础。JVM负责运行字节码:JVM把每一条要执行的字节码交给解释器,翻译成对应的机器码,然后由解释器执行。JVM解释执行字节码文
2021-03-02
Java基础
Java面向对象
###Java面向对象部分笔记
(对象和类 抽象与封装 继承与多态)
面向对象三大支柱是: 封装 继承 多态
0 面向对象5大原则单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。 开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。 Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。 依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。 接口隔离原则(Interface-Segregation Princip
2021-02-28
Java基础
Java语法基础
Java语法基础笔记1 编译与执行
java源代码(.java)<(java编译器编译)>
java字节码(.class)+ 库代码 <JVM执行(Java解释器)>
2 从控制台输入输出
System.out(in)表示标准输入输出设备
使用Scanner类创建对象进行读取
Scanner input = new Scanner(System.in); //将System.in引用值赋给input
然后通过调用Scanner的方法获取input的值
double a = input.nextDouble();//读取时以空格或者回车键为分隔
3 命名常量(大写所有字母)(用final修饰符)(这是方法中局部变量的常量)
final int PI = 3.14;
4 Java8种基本数据类型
带符号整数(符号占一位):byte 8 short 16 int 32 long 64
IEEE754标准浮点数:float 32 double 64(复习下IEEE754)
boolean 1位 true 或 false 都是直接量 保留字
char
2021-02-25
Java基础
日程安排
各科目各阶段复习方式方法α 先把最艰苦的第一阶段给熬过去,必要的时候必须Rush一波,必须既要保证进度也要确保质量。按时间规划完成这个阶段你才真正有资格去参加考研的竞争。
总体框架(大致划分)2020.9.2-2020.9.21 阶段α
9月中下旬到10月底 阶段β
10月底到11月底 阶段γ
11底到考前 阶段Ω(考前留一周左右出来综合复习)
数学第一阶段基础巩固(9.02-9.20 20开始强化)(也就是说到下周日(因为要考四六级所以20号也算进去))
从8号开始,每两天一个线代课程,多出来的时间做课本的题(不用全做完)
9号完成第二章的题目和整理,完成第一章两个题型的整理,然后以两天一章的进度把基础题目和章节整理搞完(可以均匀分配一下时间,必要时要Rush一下,这个时间不能再拖了)
方法(线代):
1 先刷一遍课本,例题做一下,整理出一个知识点和定理公式题型结构出来,大致理解
2 刷视频,记笔记做例题,然后把没有的补充上去,完全理解
3 如果有剩余时间就挑着刷一下课后题,熟练题型(没时间就算了)
方法(高数):按照我们之前说的
1 整理知识点,搞出一份A4纸的知识
2020-10-04
考研准备
项目开发踩坑日志(+1)
项目开发踩坑日志(+1)十分不情愿的开始了项目开发的工作……
研究生论文送审平台(学院专家管理模块)花费了完全三天时间完成 项目的 理解分析 代码编写 测试修改并最终验收
主要功能工作包括 1 基础功能 2 三个附加功能 3 权限与测试
1 基础功能开放踩坑表单配置
代码生成
权限配置
grid选择框(这个是真的坑,要从mapper一路改到前端)
前端的属性通过封装的直接去别的模块的mapper去取,千万别写错路径
后端mapper保存的时候也是,注意要改 别名 leftjoin findlist insert 以及update
一些细节的修改
2 三个附加功能A 根据登录账号秘书身份筛选数据
B 新增专家的时候根据账号信息去查找相关秘书的信息,填充秘书代码以及高校代码+学院代码字段
C 在新增专家时,在sys_userz中自动生成一个可登陆的专家用户,并指定权限与身份
3 权限与测试测试碰到了许许多多数据库字段以及权限相关的报错,都一一解决了。
总结这个项目坑的地方在于,一茬一茬的人写,留下了一路的坑,有很多模块很多人重复开发过,实际情况与设计文档严重不符,存在各种各样奇奇
2020-02-24
项目开发
学习算法的一点思路
关于学习算法的一点思考原因
作为一个技术狗,数据结构和算法的重要性是毋庸置疑的(比如说像我一样在项目里写各种鸡肋实现方式的时候,你就会体会到这玩意的重要性了)。所以,痛定思痛,决定扎扎实实的把这一块掌握起来,包括但不限于算法的原理,实现方式以及各种应用。
思路
对于算法的学习,打算从两条线入手,自顶向下和自底向上。自顶向下就是从数据结构和算法的书籍入手,一点一点啃,逐步建立起算法的知识体系,即有一个完整而清晰地框架,每个算法的原理,实现方式,以及各个算法之间的联系与区别。而自底向上则是从算法题入手,无论是在LeetCode也好,PAT也好,通过解题来学习算法的应用,思路,从而可以在开发中熟练应用各种算法的知识(当然,从功利角度来说,无论是考研复试还是找工作,算法题是你永远绕不开的坎)。
而对于算法的训练,应当成为每一个开发者的日常习惯,就如同吃饭喝水一样。只有日复一日的持续学习,思考,编码过程中,才能将一项技能彻底掌握。当然,并不是说要求每天成小时的使劲做,而是细水长流,每天可以来上几道题,什么时候做都可以,早上起来,午饭后,甚至排队,蹲坑的时候都可以想,可以做,让它成为你生活的一部分
2020-02-19
算法笔记
PAT-A1003 Emergency
A1003 Emergency (Dijkstra算法)问题As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pair of cities are marked on the map. When there is an emergency call to you from some other city, your job is to lead your men to the place as quickly as possible, and at the mean time, call up as many hands on the way as possible.
Input
2020-02-18
算法笔记
PAT-A1002 A+B for Polynomials
A1002 A+B for Polynomials(模拟)问题This time, you are supposed to find A+B where A and B are two polynomials.
Input Specification:
Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:
K N1 aN1 *N2 *aN2 … NK aNK
where K is the number of nonzero terms in the polynomial, N**i and aNi (i=1,2,⋯,K) are the exponents and coefficients, respectively. It is given that 1≤K≤10,0≤N**K<⋯<N2<N1≤1000.
Output Specification:
For each
2020-02-18
算法笔记
PAT-A1001 A+B Format
A1001 A+B Format(字符串处理)问题Calculate a+b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits).
Input Specification:
Each input file contains one test case. Each case contains a pair of integers a and b where −106≤a,b≤106. The numbers are separated by a space.
Output Specification:
For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.
2020-02-18
算法笔记