- Java常见问题集锦
IT源哥
java语言javaappletjdbc浏览器jdkservlet
Java常见问题集锦问:如何设置Java2(JDK1.2)的环境变量?答:Java2安装后,需要设置PATH和JAVA_HOME环境变量.与JDK1.1不同的是:设置好JAVA_HOME环境变量后,JVM将自动搜索系统类库以及用户的当前路径.Java2环境变量的设置如下例所示:Solaris平台:setenvJAVA_HOMEJava2的安装路径setenvPATH$JAVA_HOME/bin:$
- Java常见问题解决方案
后海 0_o
javapythonwindows
唯有热爱,可抵岁月长河目录基础Stringcontains()valueOf()IntvalueOf()Object面向对象异常泛型反射序列化与反序列化语法糖集合List添加元素删除元素List转Set去重SetSet转ListQueueMapTree数据处理递归数据库SQL数据定义数据操作ForEach数据查询selectWHEREORDERBYGROUPBY数据控制MysqlRedis工具类B
- 【java面试】常见问题(超详细)
网络冒险家
java面试java面试开发语言
目录一、java常见问题JDK和JRE的区别是什么?Java中的String类是可变的还是不可变的?Java中的equals方法和hashCode方法有什么关系?Java中什么是重载【Overloading】?什么是覆盖【Overriding】?它们有什么区别?Java中什么是多态?如何实现多态?Java中什么是接口?它有什么作用?Java中什么是抽象类?它有什么作用?Java中什么是final关
- Java常见问题总结四
浮生醉清风i
Javajavaspring
一、ArrayList和LinkedList的区别1.ArrayList底层是基于数组,LinkedList底层是基于链表。2.底层数缺结构不同导致适用场景不同,Araylist适合随机查找,LinkedList适合添加、删除。3.ArrayList和LinkedList都实现了list接口,但是LinkedList还额外实现了Deque接口,还可以当做双端队列4.ArrayList需要考虑扩容,
- Java常见问题总结五
浮生醉清风i
Javaspringbootjavaspring
1、垃圾回收方式SerialGC(串行垃圾回收):为单线程环境设计且使用一个线程进行垃圾回收,会暂停所有的用户线程。ParalleGC(并行垃圾回收):对过GC线程并行工作,此时用户线程是停止的。ConcMarkSweep(CMS):用户线程和GC线程同时执行,不需要停顿用户线程。G1垃圾回收器:将内存分割成不同的区域然后并发的进行垃圾回收。2、查看当前默认的垃圾回收器java-XX:+Print
- java常见问题处理
懂你帝
java源码javamysql
一、遇到异常怎么办???作为一名技术人员,在实际开发过程中,我们会经常遇到各种各样的问题,那么我们应该怎么解决呢?最直接有效的方法就是,查看控制台异常日志,然后复制日志,粘贴到百度去搜索下,基本都会有解决方法的。你要相信,你遇到的这些问题,其他人都已经遇到过了,并且有了解决方法。二、整理的一些常见问题解决视频:链接:https://pan.baidu.com/s/1N7upBxYxCK-y-4m3
- java常用工具下载和常见问题汇总
懂你帝
java源码数据库相关javamysql
1、java常用工具下载链接:java常用工具下载2、java开发环境的使用(带视频)链接:各种开发环境的使用3、java项目如何运行链接:java项目如何运行4、常见问题和处理链接:java常见问题处理各种源码,打开放心下单吧https://shop114778678.taobao.com如果您有什么建议,欢迎反馈,共同完善持续进步!
- Java常见问题排查
_吹雪_
JVM原理与调优
java问题的排查这么多年几乎没有什么改进,还是老的方法;每年查的问题也都很类似,不会有什么太多特殊的问题出现;java一些很常见的问题基本可以用一个模式去解的(大部分问题,只是有些问题比较复杂)所有的性能优化问题跟排查一个故障没有太大区别,因为最终都体现在一些系统指标上;查java问题要先知道系统的指标,因为所有的异常通常来讲系统指标都会有体现;一、排查java问题要先知道的1.系统指标查看1.
- Java常见问题之javac Hello.java找不到文件的解决方法
yuer011
javajava
对于初学者们来说,刚开始编写Java代码时,会遇到很多困难,下面来说一个比较常见的错误,如下:初学者一般都是从Hello,World开始的学起的,废了好大劲儿,铜鼓了半天,终于要在DOS上运行javacHello.java时,就会报错:找不到文件解决办法要在如下几个步骤中进行排查:1、检查环境变量是否配置正确。输出一个javac指令,能输出帮助信息,说明配置信息无误(下图说明环境变量配置,没问题)
- 面试-java常见问题
皮皮丰不会写代码
java面试jvm
JVM配置程序计数器:当前线程所执行的字节码的行号指示器java虚拟机栈:临时变量元空间:类常量池,运行时常量池方法区:类信息,静态变量堆:对象实例,Sting常量池等类加载过程加载->链接(验证+准备+解析)->初始化->使用->卸载加载:将硬盘中的二进制文件转为内存中的class对象链接:给静态变量赋初始值,符号引用替换为直接引用验证:检查载入的class文件数据正确性。准备:给类变量(静态变
- 之ssh连接AWS实例失败
o惜乐o
本文介绍了通过ssh连接AWS实例失败的解决方法一.通过秘钥连接ssh的实例.lbydeMacBook-Pro-2:~lby$ssh-i/Users/lby/key.pemec2-user@ec2-123-123-123-123.cn-north-1.compute.amazonaws.com.cn二.bug提示如下@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- java常见问题处理
源的世界
javaintellij-idea开发语言
文章目录一、前言二、实战演练1、idea常用快捷键使用2、idea设置字体大小3、idea设置背景颜色-背景4、idea配置Maven5、idea中配置JDK6、idea中java.util变红报错IDEA中Sources、JavaDocs路径是红色的7、idea中使用mybatisPlus自增主键失效,自增主键超大小知识点8、idea中文乱码问题一、前言一些常见的知识点、琐碎,但是有些很常用,当
- java 线程 内存溢出_Java常见问题分析(内存溢出、内存泄露、线程阻塞等)
石蒜科葱属草本
java线程内存溢出
Java垃圾回收机制(GC)1.1GC机制作用1.2堆内存3代分布(年轻代、老年代、持久代)1.3GC分类1.4GC过程Java应用内存问题分析2.1Java内存划分2.2Java常见内存问题2.3ML(内存泄露)OOM(内存溢出)问题现象及分析2.4IBMDUMP分析工具使用介绍Java应用CPU、线程问题分析Java垃圾回收机制(GC)1.GC机制作用1.1JVM自动检测和释放不再使用的对象内
- Java常见问题
java
1、ArrayIndexOutOfBoundsException索引越界,访问了数组中不存在的索引对应的元素,造成索引越界问题2、NullPointerException空指针异常
- Java常见问题(二十三):JVM中的区域是怎么划分的?
徐明曉
Java常见问题java栈
题目分析:暂无【回答】粗略分来,JVM的内部体系结构分为三部分,分别是:类装载器(ClassLoader)子系统(RuntimeDataArea),运行时数据区,和执行引擎。各自的功能为:类装载器装载负责装载编译后的字节码,并加载到运行时数据区,然后执行引擎执行会执行这些字节码。图片来源:https://blog.csdn.net/gushidefengzheng/article/details/
- Java常见问题
java
反射1.反射原理1)在运行期间动态获取内的所有属性及方法,并且能够动态调用对象方法及设置属性的功能称为反射机制2)反射的实现主要借助4个类,Class、Constructor、Field、Method3)一般步骤Class.forname("类名")获取class对象,会触发初始化,如果类没有加载过的话,还会触发类加载获取构造器,通过Constructor的newInstance或者class的n
- Java常见问题
java
反射1.反射原理1)在运行期间动态获取内的所有属性及方法,并且能够动态调用对象方法及设置属性的功能称为反射机制2)反射的实现主要借助4个类,Class、Constructor、Field、Method3)一般步骤Class.forname("类名")获取class对象,会触发初始化,如果类没有加载过的话,还会触发类加载获取构造器,通过Constructor的newInstance或者class的n
- java常见问题记录
两眼墨黑
javajava
1、问题:Registrykey'Software\JavaSoft\JavaRuntimeEnvironment\CurrentVersion'hasvalue'1.8',but'1.6'isrequired.Error:couldnotfindjava.dllError:couldnotfindJavaSERuntimeEnvironment.解决:△确认环境变量△在C:\Windows\Sy
- 正则表达式学习
开心的许久
基础知识学习
正则表达式匹配单个字符匹配一组字符重复匹配位置匹配子表达式回溯引用回溯替换操作前后查找嵌入条件MySQLJAVA常见问题的正则表达式解决方案java调用示例三常用正则表达式本文为阅读《正则表达式必知必会》(修订版)BenForta著杨涛等译总结所得,以备后用,内容来自此书。正则表达式是一些用来匹配和处理文本的字符串。正则表达式的两种基本用途:搜索和替换。匹配单个字符英文字符.来表示任意字符,特殊字
- Java常见问题(二十):谈谈对synchronized关键字的理解
徐明曉
Java常见问题java面试
题目分析:其他内容正在学习中…【答案】synchronized是Java中的一个关键字,是一个内部锁。【题目拓展】synchronized起到保证线程安全的作用
- java常见问题解决
navyzhengyj
java
####problemwithjavacodeand#####dealwithstringString[]idsArr=bids.split(",");for(inti=0;ilist;privateStringa;publicSendMailThread(Listl,Strings){list=l;a=s;}publicvoidrun(){System.out.println("Readinge
- JavaSE基础
GoslingBoy
Java基础
JavaSE基础Java语言概述一、计算机语言概述软件&开发人机交互&计算机语言概述&架构二、JVMJava虚拟机,将字节码解析成具体平台上的机器语言。三、JRE&JDKJDK包含JRE,JRE包含JVM。四、JDK下载与安装JDK命令行工具dos命令行工具五、环境配置配置配置技巧临时配置方式classpath六、HelloWorld语法细节:javac&java常见问题:找不到类/方法Java语
- Java常见问题
小菜一碟i
一、多线程、并发及线程的基础问题1)Java中能创建Volatile数组吗?能,Java中可以创建volatile类型数组,不过只是一个指向数组的引用,而不是整个数组。我的意思是,如果改变引用指向的数组,将会受到volatile的保护,但是如果多个线程同时改变数组的元素,volatile标示符就不能起到之前的保护作用了。2)volatile能使得一个非原子操作变成原子操作吗?一个典型的例子是在类中
- MybatisPlus-实现基于分页的多表关联查询
可乐加辣椒ヾ(黄新东阳)
springboot
MybatisPlus-实现基于分页的多表关联查询介绍新手入门,目录结构可能不够严谨,我这边没有用mybatis-plus自带的代码生成器,但是大致原理不变,这边我会重点介绍下我踩的坑,比较难找的几个问题,我有单独写在java常见问题里,大家可以去翻阅1.目录结构这边用红色框出来的,是我这边即将用到的,下面直接上代码2.对应文件代码项目/config/MybatisPlusConfig,其中Map
- Java常见问题之this()和super()的用法
Warren_Hoo
Java
本博客已迁往http://coredumper.cnthis()用法:一个构造函数可以使用this()来调用同一个类的另外一个构造函数。一个构造函数最多只能调用一次this(),且this()只能作为构造函数的第一条语句。super()用法:一个构造函数使用super()来调用父类的构造函数。如果没有为一个类编写构造函数,则编译器会自动构造一个不带参数的构造函数,且构造函数中只有一条语句super
- Java常见问题之初始化过程
Warren_Hoo
Java
本博客已迁往http://coredumper.cn假设有个名为Dog的类对于静态字段:1.当Dog类的静态字段/静态方法首次被访问时(首次创建类型为Dog的对象时也会加载Dog.class文件,可以把构造器看做是static的),Java解释器会查找类路径,以定位Dog.class文件。2.载入Dog.class,此时初始化所有静态字段,如果没有对静态字段进行显示初始化,则默认将所有基本类型字段
- Java常见问题之引用相等性和对象相等性
Warren_Hoo
Java
本博客已迁往http://coredumper.cn==和!=用来比较引用相等性,无论何时都是比较两个对象是不是位于堆上的同一个对象。Object类具有hashCode()和equals()方法,hashCode()返回根据对象所在内存位置计算得到的一个值(即两个对象的hashcode值一定不同),equals()执行两个对象的==比较。所以如果一个类没有覆盖hashCode()和equals()
- Java常见问题
suacker
JAVA/C#
第一,谈谈final,finally,finalize的区别。final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。第二,AnonymousInnerClass(匿名
- Java常见问题总结二
浮生醉清风i
Java
1、阻塞队列是一个队列,当阻塞队列是空的时候从队列中取元素的操作会被阻塞,当队列是满的时候从队列中放元素就会被阻塞,共有7种阻塞队列。ArrayBlockingQueue:由数组组成的有界阻塞队列LinkedBlockingQueue:由链表组成的有界阻塞队列,默认大小是Integer.max_value。PriorityBlockingQueue:按照优先级的无界阻塞队列DelayQueue:按
- Java常见问题总结一
浮生醉清风i
Java
1、JMM(Java内存模型)JMM是一种抽象概念并不是真实存在的,是一组规范,有三个特性:原子性、有序性、可见性,JMM关于同步的规定:线程解锁前必须把共享变量的值刷新回主内存。线程解锁前必须从主内存读取最新的值到自己的工作空间。加锁和解锁是同一把锁。每个线程对变量的操作(读取赋值)都必须在工作内存中进行,首先将变量从主内存拷贝到自己的工作空间,然后进行操作,操作完成后将变量写回主内存,不能直接
- java观察者模式
3213213333332132
java设计模式游戏观察者模式
观察者模式——顾名思义,就是一个对象观察另一个对象,当被观察的对象发生变化时,观察者也会跟着变化。
在日常中,我们配java环境变量时,设置一个JAVAHOME变量,这就是被观察者,使用了JAVAHOME变量的对象都是观察者,一旦JAVAHOME的路径改动,其他的也会跟着改动。
这样的例子很多,我想用小时候玩的老鹰捉小鸡游戏来简单的描绘观察者模式。
老鹰会变成观察者,母鸡和小鸡是
- TFS RESTful API 模拟上传测试
ronin47
TFS RESTful API 模拟上传测试。
细节参看这里:https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markdown
模拟POST上传一个图片:
curl --data-binary @/opt/tfs.png http
- PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式
dcj3sjt126com
设计模式PHP
// 多态, 在JAVA中是这样用的, 其实在PHP当中可以自然消除, 因为参数是动态的, 你传什么过来都可以, 不限制类型, 直接调用类的方法
abstract class Tiger {
public abstract function climb();
}
class XTiger extends Tiger {
public function climb()
- hibernate
171815164
Hibernate
main,save
Configuration conf =new Configuration().configure();
SessionFactory sf=conf.buildSessionFactory();
Session sess=sf.openSession();
Transaction tx=sess.beginTransaction();
News a=new
- Ant实例分析
g21121
ant
下面是一个Ant构建文件的实例,通过这个实例我们可以很清楚的理顺构建一个项目的顺序及依赖关系,从而编写出更加合理的构建文件。
下面是build.xml的代码:
<?xml version="1
- [简单]工作记录_接口返回405原因
53873039oycg
工作
最近调接口时候一直报错,错误信息是:
responseCode:405
responseMsg:Method Not Allowed
接口请求方式Post.
- 关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别
程序员是怎么炼成的
真正完成类的加载工作是通过调用 defineClass来实现的;
而启动类的加载过程是通过调用 loadClass来实现的;
就是类加载器分为加载和定义
protected Class<?> findClass(String name) throws ClassNotFoundExcept
- JDBC学习笔记-JDBC详细的操作流程
aijuans
jdbc
所有的JDBC应用程序都具有下面的基本流程: 1、加载数据库驱动并建立到数据库的连接。 2、执行SQL语句。 3、处理结果。 4、从数据库断开连接释放资源。
下面我们就来仔细看一看每一个步骤:
其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。
1、加载数据库驱动并建立到数据库的连接:
Html代码
St
- rome创建rss
antonyup_2006
tomcatcmsxmlstrutsOpera
引用
1.RSS标准
RSS标准比较混乱,主要有以下3个系列
RSS 0.9x / 2.0 : RSS技术诞生于1999年的网景公司(Netscape),其发布了一个0.9版本的规范。2001年,RSS技术标准的发展工作被Userland Software公司的戴夫 温那(Dave Winer)所接手。陆续发布了0.9x的系列版本。当W3C小组发布RSS 1.0后,Dave W
- html表格和表单基础
百合不是茶
html表格表单meta锚点
第一次用html来写东西,感觉压力山大,每次看见别人发的都是比较牛逼的 再看看自己什么都还不会,
html是一种标记语言,其实很简单都是固定的格式
_----------------------------------------表格和表单
表格是html的重要组成部分,表格用在body里面的
主要用法如下;
<table>
&
- ibatis如何传入完整的sql语句
bijian1013
javasqlibatis
ibatis如何传入完整的sql语句?进一步说,String str ="select * from test_table",我想把str传入ibatis中执行,是传递整条sql语句。
解决办法:
<
- 精通Oracle10编程SQL(14)开发动态SQL
bijian1013
oracle数据库plsql
/*
*开发动态SQL
*/
--使用EXECUTE IMMEDIATE处理DDL操作
CREATE OR REPLACE PROCEDURE drop_table(table_name varchar2)
is
sql_statement varchar2(100);
begin
sql_statement:='DROP TABLE '||table_name;
- 【Linux命令】Linux工作中常用命令
bit1129
linux命令
不断的总结工作中常用的Linux命令
1.查看端口被哪个进程占用
通过这个命令可以得到占用8085端口的进程号,然后通过ps -ef|grep 进程号得到进程的详细信息
netstat -anp | grep 8085
察看进程ID对应的进程占用的端口号
netstat -anp | grep 进程ID
&
- 优秀网站和文档收集
白糖_
网站
集成 Flex, Spring, Hibernate 构建应用程序
性能测试工具-JMeter
Hmtl5-IOCN网站
Oracle精简版教程网站
鸟哥的linux私房菜
Jetty中文文档
50个jquery必备代码片段
swfobject.js检测flash版本号工具
- angular.extend
boyitech
AngularJSangular.extendAngularJS API
angular.extend 复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制. 使用方法: angular.extend(dst, src); 参数:
- java-谷歌面试题-设计方便提取中数的数据结构
bylijinnan
java
网上找了一下这道题的解答,但都是提供思路,没有提供具体实现。其中使用大小堆这个思路看似简单,但实现起来要考虑很多。
以下分别用排序数组和大小堆来实现。
使用大小堆:
import java.util.Arrays;
public class MedianInHeap {
/**
* 题目:设计方便提取中数的数据结构
* 设计一个数据结构,其中包含两个函数,1.插
- ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本
Chen.H
ajaxFileUploadie6ie7ie8ie9
jQuery.extend({
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
s.error.call( s.context || s, xhr, status, e );
}
- [机器人制造原则]机器人的电池和存储器必须可以替换
comsci
制造
机器人的身体随时随地可能被外来力量所破坏,但是如果机器人的存储器和电池可以更换,那么这个机器人的思维和记忆力就可以保存下来,即使身体受到伤害,在把存储器取下来安装到一个新的身体上之后,原有的性格和能力都可以继续维持.....
另外,如果一
- Oracle Multitable INSERT 的用法
daizj
oracle
转载Oracle笔记-Multitable INSERT 的用法
http://blog.chinaunix.net/uid-8504518-id-3310531.html
一、Insert基础用法
语法:
Insert Into 表名 (字段1,字段2,字段3...)
Values (值1,
- 专访黑客历史学家George Dyson
datamachine
on
20世纪最具威力的两项发明——核弹和计算机出自同一时代、同一群年青人。可是,与大名鼎鼎的曼哈顿计划(第二次世界大战中美国原子弹研究计划)相 比,计算机的起源显得默默无闻。出身计算机世家的历史学家George Dyson在其新书《图灵大教堂》(Turing’s Cathedral)中讲述了阿兰·图灵、约翰·冯·诺依曼等一帮子天才小子创造计算机及预见计算机未来
- 小学6年级英语单词背诵第一课
dcj3sjt126com
englishword
always 总是
rice 水稻,米饭
before 在...之前
live 生活,居住
usual 通常的
early 早的
begin 开始
month 月份
year 年
last 最后的
east 东方的
high 高的
far 远的
window 窗户
world 世界
than 比...更
- 在线IT教育和在线IT高端教育
dcj3sjt126com
教育
codecademy
http://www.codecademy.com codeschool
https://www.codeschool.com teamtreehouse
http://teamtreehouse.com lynda
http://www.lynda.com/ Coursera
https://www.coursera.
- Struts2 xml校验框架所定义的校验文件
蕃薯耀
Struts2 xml校验Struts2 xml校验框架Struts2校验
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月11日 15:54:59 星期六
http://fa
- mac下安装rar和unrar命令
hanqunfeng
mac
1.下载:http://www.rarlab.com/download.htm 选择
RAR 5.21 for Mac OS X 2.解压下载后的文件 tar -zxvf rarosx-5.2.1.tar 3.cd rar sudo install -c -o $USER unrar /bin #输入当前用户登录密码 sudo install -c -o $USER rar
- 三种将list转换为map的方法
jackyrong
list
在本文中,介绍三种将list转换为map的方法:
1) 传统方法
假设有某个类如下
class Movie {
private Integer rank;
private String description;
public Movie(Integer rank, String des
- 年轻程序员需要学习的5大经验
lampcy
工作PHP程序员
在过去的7年半时间里,我带过的软件实习生超过一打,也看到过数以百计的学生和毕业生的档案。我发现很多事情他们都需要学习。或许你会说,我说的不就是某种特定的技术、算法、数学,或者其他特定形式的知识吗?没错,这的确是需要学习的,但却并不是最重要的事情。他们需要学习的最重要的东西是“自我规范”。这些规范就是:尽可能地写出最简洁的代码;如果代码后期会因为改动而变得凌乱不堪就得重构;尽量删除没用的代码,并添加
- 评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓
nannan408
先来看南方网的一则报道:
再正常不过的结婚、生子,对于29岁的郑畅来说,却是一个永远也无法实现的梦想。从2010年到2015年,从24岁到29岁,一张张新旧不一的诊断书记录了她病情的同时,也清晰地记下了她人生的悲哀。
粗暴手术让人发寒
2010年7月,在酒店做服务员的郑畅发现自己怀孕了,可男朋友却联系不上。在没有和家人商量的情况下,她决定堕胎。
12月5日,
- 使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件
Everyday都不同
jspinput回车键绑定clickenter
假设如题所示的事件为同一个,必须先把该js函数抽离出来,该函数定义了监听的处理:
function search() {
//监听函数略......
}
为input框绑定回车事件,当用户在文本框中输入搜索关键字时,按回车键,即可触发search():
//回车绑定
$(".search").keydown(fun
- EXT学习记录
tntxia
ext
1. 准备
(1) 官网:http://www.sencha.com/
里面有源代码和API文档下载。
EXT的域名已经从www.extjs.com改成了www.sencha.com ,但extjs这个域名会自动转到sencha上。
(2)帮助文档:
想要查看EXT的官方文档的话,可以去这里h
- mybatis3的mapper文件报Referenced file contains errors
xingguangsixian
mybatis
最近使用mybatis.3.1.0时无意中碰到一个问题:
The errors below were detected when validating the file "mybatis-3-mapper.dtd" via the file "account-mapper.xml". In most cases these errors can be d