(自用)Java累计错误笔记

1、        大小写格式没有严格区分

2、        此处少个s也可以使用

3、        字符和字符串不相等,字符本质是整数可以运算,输出的是其Unicode码(整数)对应的字符

4、        char只能存放单个字符

5、        变量如果不指定数据类型,会继承上一次的类型,如果是从来未定义过的变量,不定义的话会报错,如下面的f

6、运算符,数值相除

7、先执行==后再执行++,其他情况类比

8、多态

 9、

传参的时候发生了向上转型,而instanceof是比较运行类型,obj运行类型不是Object,编译类型是Object所以要向下转型再取回属性比较

每一个引用类型(class)都已经有了重写的equals方法,比如声明一个引用类型就已经有了,之后只会“值”的改变,类型里一直有重写的方法
 

10、

构造器执行顺序:

        1、从各个父类到子类执行静态的东西

        2、执行子类构造器(构造器里的东西)执行顺序:

                        1、其中子类默认先继承父的构造器(super)(如果没指定构造器这段位隐藏代码)

                        2、执行代码块和初始化对象

                        3、执行自己构造的东西

11、        静态的东西只能调用静态的东西,普通的全部能调用

12、        类加载了就会执行所有静态的东西,不会单单执行所调用的东西

13、        子类继承父类的构造器也不可以访问父类构造器内private的属性

14、        接口:先定义接口,其具体的实现功能要在实现类中定义,每个功能类有不同的功能,所以就相当于一个接口接入什么东西就实现什么功能,方法名的的固定使得更规范,就像给手机和iPad充电的接口,都是一个功能,一个同一个名字,接入什么就给什么充电 ------>>多态?

接口和继承:接口定义时只给了一个名字,具体功能要看具体实现方法,  继承是直接拿父类的方法来用,接口有点像使用前必须重写。

15、        自我理解匿名内部类:实质为一种特别继承(extend、implement),无需引用直接创建,只是用一次;一般作为重写方法使用,而不用直接再创建一个类所以比较方便。

16、        枚举:首先得定义枚举对象,因为是无惨所以不用带括号

17、        结合16,枚举可以直接调用实例内的方法,因为是static和已经创建好

19、        

20、 catch处理后可以继续运行,不然就直接中断      

 21、        如果出现错误,从错误语句到catch中的语句都不会执行,下面的会继续执行

22、        

23、        throw new AgeException("年龄需要在18~120 之间");

和        System.out.println("年龄需要在18~120 之间");        区别在于,AgeException可以继承父类方法来生成错误类型,并且是具体向外抛出异常的动作,所以它抛出的是一个异常实例,执行throw一定是抛出了某种异常

24、        注意红线题目

25、       p1和p1.name的地址不一样,p1.name的地址就是name 的地址他们都指向常量池所以是一样的,而s1和s2的地址为其前的堆空间,分别创造出的当然不一样

26、     change方法中的str和原变量是两个引用变量,change方法中修改str的值,只是创建新内存块并更改了方法中的str的指向,原引用变量及其内存块都未更改,当方法执行完空间就会消除,再回头找方法中的str时候已经不见,所以只能找原变量,所以原变量值不发生变化。

27、        基本数据类型不是对象?

28、        Linklast码源分析

29、        Hashmap:将数据存在一个node类型数据中,为了方便遍历,创建一了Keyset和valueset,但是里面的数据不是创建的,而是指向node里面的数据,也就是实际上里面的地址指向node里面的数据并没有创建

30、        不同内容的哈希值不一样

31、        

 32、        

33、        代理模式、Runnble多线程,为什么要start。

34、        单单调用run方法和synchronize的区别,run方法只能先后执行完了才能执行下一个方法,而synchronize是每个run方法都可以执行一轮,也就是虽然不是同时执行,但是可以轮流执行,比较公平,就好像售票一样,不必等待一个售票窗口卖完(run),而是这个窗口的这个人买完又到下一个窗口,保证了比较公平,不用等别的窗口全部卖完,但是本质也是只有一个线在执行,所以效率比较低

35、        锁可以加在多线程代码块里的任意对象(多个线程共享的对象(static肯定是共享的)),只有拿到加在那个对象的锁才能进去。将锁放在要执行的代码里的任意一个对象,然后指定针对哪个段代码执行锁功能,“锁”在方法上就是那个方法里的代码(其实是在this上,也就是要运行到的这个类,因为这几个线程都是在运行这个类,也就是必须经过这里检查锁还在不在),‘锁’在代码块前就是代码块里的代码,谁拿到谁就可以进去。静态方法和代码块不能锁this,只能锁了类本身:当前类.class。锁的代码越少,效率越高

下面两个的区别:sellTichet03都是同一个对象,锁得住,而new Selltichet01不是,他分别创建了几个对象有不同的空间,所以不止一个锁,锁不住

36、        包装流用的是方法重载,例如下面两个:

37、        在导入类(ObjectInputStream)之前,必须要有那个类的定义,不然导不进去,导入包是带有包信息的,所以包必须要匹配,或者是public类型

38、        

39、        jdbc链接数据库时必须导入对应数据库的驱动,因为java只是提供了一些接口让他们实现,但是其具体的实现方法还是每个数据库厂商自己实现的,他不知道有哪些厂商,所以每次必须引入对应数据库的驱动,但他们必须按照接口实现相同的方法,就像api只有一个解释一样

40、        HttpServlet类的导入(导入tomcat依赖步骤)

41、        

42、        

43、       

service方法、doGet方法和doPost方法的区别


 * service方法:可以处理get/post方式的请求,如果servlet中有service方法,会优先调用service方法
 * doGet方法: 处理get方法的请求
 * doPost方法: 处理post方式的请求
 * 注意:如果在覆写的service方法中调用了父类的service方法  super.service(arg0, arg1);
 *          则service方法处理完后,会再次根据请求方式响应的doGet和doPost方法执行
 *         所以,一般情况下,是不在覆写的service中调用父类的service方法的,避免出现405错误
44、        

 

45、这两个要对应

46、

47、        配置文件建立

48、反射获取对应参数名称设置

1

 2

从新编译

 49、        xml文件单标签和双标签的用法

50、

51、       两者区别

 ServletContext:

1、获取web.xml 中配置的上下文参数context-param
2、获取当前的工程路径,格式: /工程路径
3、获取工程部署后在服务器硬盘上的绝对路径
4、像Map 一样存取数据

HttpServletRequest(request)方法:

 52、       Ctrl+H看类结构图

53、        atl + 鼠标左键  可以整列编辑

54、mybatis步骤

55、        mybatis是融合了德鲁伊、jdbc和sql(dao操作),也就是配置的时候要有密码(IP)、驱动、连接池的配置

56、

57、

 58、       

59、        当标注的属性是接口时,其实注入的是这个接口的实现类, 如果这个接口有多个实现类,只使用@Autowired就会报错,因为它默认是根据类型找,然后就会找到多个实现类bean,所有就不知道要注入哪个。然后它就会根据属性名去找。所以如果有多个实现类可以配合@Qualifier(value=“类名”)来使用

60、

61、

62、        黑马

Axios

63

64

65、

66、

67、        

提交到git仓库需要的“通行证”:

        1、免密ssh---->本地仓库发送给远程仓库,远程仓库检测到通行证(ssh)则一律给通过,省了登录的麻烦

        2、账号验证--->本地仓库关联到GitHub账户,用于检测该用户是否是远程仓库成员,是则通过

        免密操作:用git生成秘钥,将此秘钥设置为GitHub账户里的秘钥(通行证),以后只要哪个本地仓库里有秘钥文件,就可以直接发进仓库不用登录

68、        maven坐标红色解决方法:idea maven parent飘红_ZhangJQKb的博客-CSDN博客_idea maven parent标红

69、        设置显示隐藏包

70、       解决 log.info 爆红,plugin里安装lombok

71、        没有对应字段名

72、      sccpe.row.id--->获取这行的id属性 

73、        这两个参数名称必须一致,如果不一致会提示成功,但是数据不会改变

74、idea将静态资源替换后要重启不然会无法访问

75、翻译 去settings中的插件搜translation(idea中的翻译插件)教程:idea:idea安装Translation翻译插件_韩长奇的博客-CSDN博客_idea安装翻译插件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值