在一个文件中写多个类需要注意的事情:
若有公有类:公有类只能有一个,且该类的名字必须和文件名相同
没有公有类:非公有类名字随意,文件名也不需要跟它们之中的任何一个一致
main方法可以随意放(公有私有类都可以,且JAVA中(C#也可)main方法是可以有多个的,可以由程序员选择执行哪个)
在方法中声明并创建一个数组,此时数组虽然是局部变量,但默认的构造方法会使其值为0
对于一个3行5列的二维数组a,a.length的值为3,a[0]-a[4].length的值为5,注意第二维数组也可以不等长
科学计数法所表示的数都是double类型
高精度赋值给低精度,需要显式转换,否则会报错(如double给float)。低精度赋值给高精度不需要(int给float),系统自动转换
if语句括号中的数据必须是boolean类型,其它与if类似的语句也是
switch可以没有break和default
算数混合运算的精度
精度由低到高:
byte short char int long float double
一般来说一个表达式计算结果的类型会与该表达式中最高精度的数据类型相同
在表达式中最高精度低于int时,按照int来算
static方法可以重载
源文件最多只能有一条包语句,且该语句必须是第一条语句
类中的类方法只能操作类变量,不可以操作实例变量
用new运算符和构造方法创建对象时,步骤如下
为成员分配内存,并指定默认值
初始化成员变量,即用户声明成员变量时给定的默认值
执行构造方法
计算出一个引用值
子类不继承父类的构造方法,因此在子类中使用父类的构造方法必须用super关键字,且该语句要放在子类构造方法第一条语句,若没有写该命令,则默认执行super(),即调用父类不带参的构造方法
接口中的方法默认public,在重写时方法前要加public,因为此时非接口类中方法默认为default
不能用final修饰构造方法
字符串不能包含反斜杠,如果一定包含,则可以用两个反斜杠表示一个
String和StringBuffer的区别:
String类型本质上是像数组一样的类型,即引用类型,但与数组不同的是其值不可改变,若使用诸如s+="s"的语句对String类型的变量s进行操作时,实际上s保存的引用会改变,改变后的引用指向地址的内容为s+"s",但原来的引用(改变前的引用)并没有变,其指向地址所保存的字符串也没有变
StringBuffer类型的变量其值可以修改(与数组类似),但需要使用append函数
局部变量所谓的被释放掉,是指指向某个对象的引用从所执行线程的栈中POP出去了
但是那个对象实体还是存在的,只不过指向它的引用少了一个,如果不再有引用指向它,那么,GG才会处理它
(与C语言不同)
var只能用来声明局部变量
子类的上转型对象调用子类重写的父类中的static方法时还是调用的父类的static方法
Spring中pow文件中的source和target:
-source 指定用哪个版本的编译器对java源码进行编译
-target 指定生成的class文件将保证和哪个版本的虚拟机进行兼容。我们可以通过-target 1.2来保证生成的class文件能在1.2虚拟机上进行运行,但是1.1的虚拟机就不能保证了。
Java注解:https://www.runoob.com/w3cnote/java-annotation.html
泛型的格式是 List<Object> 必须是继承了Object的对象才可以泛型int是基本数据类型所以不行
访问路径相关:
对于一般javaweb项目和使用spring的javaweb项目(war):
运行服务器启动浏览器后,tomcat中配置的url映射到模块的webapp目录下(更准确的说是target中与模块名相同的目录下)以供浏览器进行访问
除此之外也可以通过映射来直接访问
服务端可以通过classpath获取到classes下的文件
对于springboot的项目(jar):
浏览器可以通过映射访问
服务端可以通过classpath获取到classes下的文件
JSP中的${pageContext.request.contextPath}: https://www.cnblogs.com/zshibo/p/8011514.html
tomcat安装:
tomcat下载win64的zip包,解压后在bin目录执行cmd命令service.bat install,打开tomcatxw,点击start开启,若状态变为开启即安装成功
注:
如果有多个tomcat则去server.xml中改端口才能启动
乱码问题可以更改logging.properties下的编码方式为GBK
jdk安装:
jdk下载后按照向导安装,然后配一下环境变量即可,若有多个只需要把JAVA_HOME换一下就行,可以通过cmd命令java -version测试
idea中记得在Project Structure的SDKs中加一下新的jdk(如果没有),然后在Project中两个选项卡都换成对应jdk版本的,还有Settings-Build-Compiler-Java Compiler的Target bytecode version换一下
javaweb中的斜杠:https://www.cnblogs.com/convict/p/9785845.html
JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO
TABLE:使用一个特定的数据库表格来保存主键
SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列(MySQL不支持)
IDENTITY:主键由数据库自动生成(主要是自动增长型)
AUTO:在上面三种中选择合适的一种(默认)
SpringBoot中的Validation校验参数:
https://segmentfault.com/a/1190000023451809
关于中文乱码:
种类太多,建议遇到一个弄明白一个即可
1.页面中文乱码可以改html或jsp中页面的编码方式(从服务器获得的中文字符不会出现异常,只有原本存在于文件中的才会出现乱码现象)
2.服务器返回数据中的中文字符出现乱码,可以参考https://www.bilibili.com/video/BV1Y7411K7zz?p=318
P156和P157