java开发遇到的问题,及其解决思路(知识点备份)

本文涵盖Java开发中各类实用技巧,包括类加载配置、线程同步、数据库操作、Spring框架配置、Maven项目管理等内容,帮助提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、classloader加载配置文件,getclass.getclassLoader.getResourceAsStream(filename)

2、List装对象的时候,每个对象要new 出来,否则可能,装的是一个同一个对象

3、查看eclipse项目部署的位置,server——>open lanch configuration——>Argument中查看

4、CountDownLatch类的使用,CountDown计数器减1,await方法阻塞线程,直到计数器为0.

5、disabled提交表单的时候,不传该值,readOnly提交表单的时候,要传该值。

6、!=和<>不走索引,in也不走索引,一般将!=和<>改为>or<拆开,即可走索引。

7、exist用于表示一个子查询返回的数据是否大于1行,如果是,则为true,否则,则为false.

8、解压 tar -zxvf 文件名,压缩tar -zcvf文件名

9、wget url下载文件。

10、项目导入junit

项目右键——Properties——java Build Path——libraries标签——add library ——junit——Next——Finsh

11、execuption(*com.sample.service.impl..*.*(..))

1)第一个* 表示返回类型,* 号表示所有类型

2)包名,表示需要拦截的包名,后面两个句点,表示,当前包和子包

3)第二个* 号表示类名,*表示所有类

4)*(..)最后一个*号表示所有方法名,(..)表示任何参数

12、run as ——>mybatis-generator:generate

13、默认一个ConcurrentHashMap中有16个子HashMap,所以相当于一个二级哈希。对于所有的操作都是先定位到子HashMap,再作相应的操作。效率比hashMap低,但比hashtable高,可在高并发的项目中使用

14、Java 语言里的 equals方法其实是交给开发者去覆写的,让开发者自己去定义满足什么条件的两个Object是equal的。java中默认的euqals是==,而String类中腹写了equals方法,导致,该方法纯粹是,比较两个字符串是否相等。

15、页面上的数字传到后台,发生了改变。原因是因为,页面把数字四舍五入了,解决办法,就是加上双引号,用字符串来改变

16、volatile让变量每次在使用的时候,都从主存中取。而不是从各个线程的“工作内存”。

17、http请求的实体,分两种,一种是LIST<nameValuePair>,new urlEncodedFromEntity,另外一种就是StringEntity,key=value&key=value.....

18、Spring事物的隔离级别,事物的特性(原子性,一致性,隔离型,持久性)

 

  1. 原子性(Atomicity):事务是数据库逻辑工作单元,事务中包含的操作要么都执行成功,要么都执行失败。
  2. 一致性(Consistency):事务执行的结果必须是使数据库数据从一个一致性状态变到另外一种一致性状态。当事务执行成功后就说数据库处于一致性状态。如果在执行过程中发生错误,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这是数据库就处于不一致状态。
  3. 隔离性(Isolation):一个事务的执行过程中不能影响到其他事务的执行,即一个事务内部的操作及使用的数据对其他事务是隔离的,并发执行各个事务之间无不干扰。
  4. 持续性(Durability):即一个事务执一旦提交,它对数据库数据的改变是永久性的。之后的其它操作不应该对其执行结果有任何影响。

19、Spring的事物的隔离级别

 

 read uncommited(读未提交)、read commited(读提交)、read repeatable(读重复)、serializable(序列化)

 (脏读,幻读,重复读)、(幻读,重复读)、(重复读)、()20、给一个元素添加点击事件,(1)直接添加onclick,(2)元素.blind('click',function(){

方法体

 

})

21、乐观锁与悲观锁,什么是自旋?

        悲观锁:独占资源,太耗费资源了。如,Synchronized。

        自旋,compare And swap 预期值与内存值比较,相同,则执行操作,不同,则说明被其他线程修改过,放弃本次操作

22、单例(饿汉式)

 

public class Singleton {
    private static Singleton instance=new Singleton();
    private Singleton(){
        
    }
    public static Singleton getInstance(){
        return instance;
    }
}

23、转发和重定向的区别(redirct和forward)

    redirct是浏览器请求服务器,服务器再将目的url发给浏览器,浏览器再请求目的Url,2次请求

    forward是浏览器请求服务器,服务器代请求目的URL,将返回结果发送给浏览器,请求次数为1次

24、类加载器

    bootstrap类加载器,加载jdk类库,如java.lang.*等

    extension类加载器,加载基本API外的扩展类

    APPClassLoader,加载应用程序和,程序员自定义的类

25、GC算法

    新生代,采用copying算法,将不回收的拷贝到新的内存空间,回收旧的内存空间。

    旧生代,采用mark算法,将不回收的标记起来,回收那些没标记的内存。

26、静态变量+常量+类信息+运行时常量池,存放在方法区中,实列变量存放在堆内存中。

        基本类型变量和对象的引用变量,存放在栈内存中

27、myeclipse中tomcat调内存大小,

解决方法:

-Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m

在MyEclipse上侧选项中:Window-Preferences-Java-Installed JREs-选择JDK-右侧Edit-在Default VM aguments:中输入 -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m.

28、本地虚拟机linux中的mysql链接很慢的原因

    

    [mysqld]
    skip-name-resolve

      在linux下配置文件是/etc/my.cnf,在windows下配置文件是mysql安装目录下的my.ini文件。注意该配置是加在 [mysqld]下面,在更改配置并保存后,然后重启mysql并远程连接测试,一切恢复如初。该参数的官方解释信息如下:

     根据文档说明,如果你的mysql主机查询DNS很慢或是有很多客户端主机时会导致连接很慢,由于我们的开发机器是不能够连接外网的,所以DNS解析是不可能完成的,从而也就明白了为什么连接那么慢了。同时,请注意在增加该配置参数后,mysql的授权表中的host字段就不能够使用域名而只能够使用 ip地址了,因为这是禁止了域名解析的结果

 

28、windows编辑的脚本文件,可能不适用linux的脚本文件,因为格式不一样。

        用:":set ff?"查看文件的格式

        用: ":set ff=unix"强制将文件格式设置为unix格式

29、typeAliasesPackage这个的配置,目的在于,写xml文件的时候,可以直接使用包名下的类名了,包名可以省略不写,如果不配置这个的话,就需要写包名。typeAliases这个类似,可以直接写类的别名了。

30、导入maven的web项目出现

Deployment Descriptor这种web项目了,调整java模式查看就不会出现,就是maven项目了。

31、如果报找不到java/main/resource里的文件,就查查看是否被加载进去了。可到build path里的Java build path里自行添加

        该source floder。

32、深拷贝,浅拷贝,深拷贝,需要类的子类都复写clone方法,浅拷贝,只要一个外类实现clone方法,当类的层级比较深的时候,最好采用序列化的方式来实现深拷贝

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值