- 博客(98)
- 资源 (1)
- 收藏
- 关注
原创 深入浅出了解Java程序中的乱码
Java程序编码乱码踩坑,大家写java程序,肯定或多或少有一些关于字符编码方面的问题,尤其是乱码,今天我们就一个由浅入深,来解析一些我们编写Java程序常遇到的坑和要注意的知识点。
2020-05-14 18:34:57 11143 1
原创 字符编码那些事--彻底理解掌握编码知识
每一个程序员都不可避免的遇到字符编码的问题,很多人在字符编码方面同样遇到不少问题,而且一直对各种编码懵懵懂懂、不清不楚。这篇文章就是针对字符编码中的一些问题进行了详细的阐述,能从根本上理解字符编码。
2020-05-04 16:42:33 11583 25
原创 Java集合详解之Set集合
我们今天对Java中Collection接口下的Set集合进行详细讲解,Set继承于Collection接口,没有新增方法,不允许出现重复元素且无序,主要有HashSet与TreeSet两大实现类,以及一个不常见的EnumSet。一、Set简介1.Set特点Set集合中的元素是唯一的,不可重复(取决于hashCode和equals方法),也就是说具有唯一性。Set集合中元素不保证存取顺序...
2020-03-03 00:04:27 927
原创 Java迭代器Iterator知识点浅析
什么是迭代器:维基百科解释:迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式,可在容器对象(container,例如链表或数组)上遍访的接口,设计人员无需关心容器对象的内存分配的实现细节。我们解释一下上面这段话: 讲到迭代器,就离不开容器,也是是Java中经常讲到的集合(Java集合框架的集合类,我们有时候称之为容器)。容器的种类有很多种,比如ArrayLis...
2020-02-19 00:54:27 1032
原创 Java抽象类/抽象方法定义及其特性详解
类的继承结构中,越往上的类越具有通用性,也就越抽象。当它抽象到一定程度,就变成概念成框架,不能再产生实例化的对象了。例如“交通工具”,就无法用它来产生一个实例。对应这一现象,Java中提供了抽象类,它只能作为父类,不能实例化。定义抽象类的作用是将一类对象的共同特点抽象出来,成为代表该类共同特性的抽象概念,其后在描述某一具体对象时,只要添加与其他子类对象的不同之处,而不需要重复类的共同特性。这样就使得程序概念层次分明,开发更高效。与抽象类紧密相连的是抽象方法一它总是用在抽象类或接口中。
2019-09-28 19:50:43 9150
原创 Java动态绑定和多态性详解
向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
2019-09-27 16:30:02 1814 3
原创 Java中子类能不能继承父类的私有变量和方法?
一、子类可以继承父类的private属性和private方法:1、子类继承父类,子类拥有了父类的所有属性和方法。 程序验证,父类的私有属性和方法子类是无法直接访问的。当然私有属性可以通过public修饰的getter和setter方法访问到的,但是私有方法不行。假设:子类不能够继承父类的私有属性和方法那么:分析内存后,会发现,当一个子类被实例化的时候,默认会先调用父类的构造方法对父类进...
2019-09-25 23:17:40 15889 8
原创 Java中静态变量和静态方法的优缺点以及应用场景
Java静态变量和静态方法会在程序初始化运行时候就加载到内存,这个就使它既然好处又有缺点。优点:不需要在进行实例化。静态变量的值,直接赋新值即可,不需要参数传递,之后可以直接进行参数引用即可;静态方法可以直接通过"类名.方法"的形式进行方法调用。通常方法被多次调用,并且方法中没有动态方法引用的时候使用比较方便。缺点:初始化加载到内存,如果后续没被引用,加大了内存负担和程序运行负担,影响程序运行...
2019-09-25 02:16:36 3834
原创 详解Java的继承机制和继承的内部处理
继承的内部处理 对于父类,当它被子类继承后,并非复制了一份成员方法和成员属性到子类的空间中,它仍然只在父类空间中存在一份,子类通过继承链(本质上是指针) 来访问父类中的方法。如果程序中通过“子类对象名.成员方法名” 的方式使用成员,编译器会首先到子类中查找是否存在此成员,如果没有,顺着继承链到其父类空间中查找,依次往上推,如果找到Ob-ject类(该类为所有类的公共祖先)还未发现此成员,...
2019-09-23 21:06:08 859 1
原创 Java类的访问权限详解
Java中总共有四类访问权限修饰符(加上默认的)private,public,protected,默认不写(firendly)下面就讲解不同层次的访问权限作用:Java的类有2种访问权限,public、默认;而方法和变量有4种:public、默认、protected、private。一、Class类的访问权限: 1.public:可以供所有的类访问。 2.默认:默认可以称为frien...
2019-09-23 00:53:30 4476
原创 JavaScript简单数据类型和复杂数据类型详解
一,简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。1.值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型string,number,boolean,undefined,null2.引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型通过new关键字创建的对象(系统对象、自定义对象),如Object、Array、Dat...
2019-09-12 22:25:18 878
原创 Javascript进行变量提升和函数提升有什么用?
相信大家学习JS时,对于变量提升和函数提升这个会有很多疑惑,为什么设计这个,不像其他动态语言一样,是从上到下逐句依次执行,有人说这个的设计其实是低劣的,或者是语言实现时的一个副作用。它允许变量不声明就可以访问,或声明在后使用在前,不管是新手对于此则很迷惑,甚至许多使用JS多年老手也比较迷惑。
2019-09-09 02:14:12 1155
原创 Django的objects.get和objects.filter方法详解和区别
django get方法和filter方法详解1.django的objects.get()方法:django的get是从数据库的取得一个匹配的结果,返回一个对象,如果记录不存在的话,它会报错。比如我数据库里有一条记录,记录的name的值是"django"的话,我用student = Student.objects.get(name=‘django’),返回的是一个记录对象,你可以通过stu...
2019-08-11 00:59:29 33713 2
原创 xadmin下设置“use_bootswatch = True”无效的解决方案
最近使用django开发一个小网站,后台管理系统采用xadmin,xadmin是采用源代码的方式引入到项目中,在xadmin使用的过程中,设置“use_bootswatch = True”,企图调出主题菜单,显示更多主题,但是设置后却发现无效,发现主题还是默认和bootstrap2这里我特意去github上找到xadmin这个项目,有跟我一样问题的解决方法原因:当use_bootswatc...
2019-07-24 00:00:43 636 1
原创 Django setting.py中BASE_DIR解析
最近被django的一些路径问题搞蒙了,真的是基础不牢啊,这里我就写点关于BESE_DIR这些路径配置的体会我们一层一层的辨析1.os.path.abspath(file)返回的是.py文件的绝对路径,也就是settings.py这个文件路径2.os.path.dirname(os.path.abspath(file)),也就是settings.py这个文件的目录,我们这里是messag...
2019-07-15 20:26:38 5733 1
原创 TCP三次握手和四次挥手详解
TCP连接建立与释放TCP三次握手和四次挥手也就是我们TCP连接建立与释放的过程的一个形象描述。连接前的一些工作最初两端的TCP进程都处于关闭状态。一开始,TP服务器进程首先创建传输控制块,用来存储可P连接中的些重要信息。例如TCP连接表,指向发送和接收缓存的指针,指向重传队列的指针,当前的发送和接收序号等等。之后,就准备接受TCP客户辨程的连接请求。此时TCP服务器进程就进入监听状态,等待TCP客户进程的连接请求。同理,TCP客户进程也是首先创建传输控制块。然后,在打算建立TCP连接时向TCP服
2021-01-03 19:51:52 600
原创 阿里云部署Django项目邮件配置出错
最近用阿里云部署了一个django项目,里面用到了django邮件功能,发现邮件不能发送出去,但是数据库里面有记录,查了一下,发现是阿里云禁用了25端口,导致用25端口配置的邮箱不能用,一般的邮件发送使用 smtp协议发送是基于25端口,但是很多云服务器平台默认将 25 端口封锁了,导致在本地开发调试都是可以的,但是到部署到线上后,就会提示错误。传统配置:EMAIL_HOST = "smtp....
2020-04-14 17:25:47 653
原创 centos7 开启mysql5.7远程连接授权并连接
在centos7安装了mysql数据库,却发现只能本地连接,那么如何来实现远程连接呢, 下面就讲述如何开启mysql5.7远程连接授权并远程连接一、远程连接授权如果要用第三方工具,如Navicat启用远程访问,是要授权的,因为mysql默认禁止远程访问这里我们有两种方法,一种是下面这种sql语句授权GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDEN...
2020-04-13 11:48:46 5585
转载 centos7 通过yum源安装mysql 5.7以及启动数据库
centos7默认数据库是mariadb, 但是好多用的都是mysql ,但是centos7的yum源中默认好像是没有mysql的,所以我们需要自己去安装mysql。而这个mariadb是mysql的分支,安装完成后会覆盖mariadb的,安装步骤如下。一、添加MySQL Yum存储库从官网下载最新的mysql源官网地址:https://dev.mysql.com/downloads/rep...
2020-04-13 11:14:51 514
原创 centos7 安装python虚拟环境以及使用
centos7 安装了python,想使用虚拟环境的话,就得安装virtualenv,下面这篇文章就讲述怎么来安装以及配置、使用一系列的过程。另外文中所有的pip安装都可以换源安装的,这里提供几个镜像站 -> pip安装库的国内的一些镜像Python虚拟环境安装1.安装python虚拟环境,我这里用pip...
2020-04-13 02:56:25 2094
原创 centos7 中python pip3安装报警告提示Try pip3 install --user instead.
最近想在centos7上安装一个virtualenv包,以sudo使用pip安装,虽然安装成功了,但是过程中有个警告。警告为WARNING: Running pip install with root privileges is generally not a good idea. Try pip3 install --user instead.
2020-04-13 01:53:50 40112
原创 centos7 下安装python3.6并修改为默认python环境
centos自带的环境是python2,所以python3需要自己安装,这篇文章就python3.6的安装和修改为默认python环境简单来说一下这里我们采用yum安装,首先准备阶段(当然你觉得够了,或者弄过,可以直接跳过):1.更新yumsudo yum -y update2.然后安装yum-utils,一组扩展和补充yum的实用程序和插件:sudo yum -y install yum-utils安装python3一、安装EPEL:sudo yum...
2020-04-12 17:18:56 5200 2
原创 详解Java 字节流的read()方法返回int型而非byte型的原因
我们都知道java中io操作分为字节流和字符流,对于字节流,顾名思义是按字节的方式读取数据,所以我们常用字节流来读取二进制流(如图片,音乐等文件)。问题是为什么字节流中定义的read()方法返回值为int类型呢?既然它一次读出一个字节数据为什么不返回byte类型呢?网上的说法不能说它是错误的,只是我感觉没有解释清楚,接下来我们以FileInputStream /FileOutputStream和...
2020-03-14 22:55:57 1767 1
原创 SQL多表查询(SQL 92 与SQL 99详解)
连接查询Join表操作符对两个输入表进行了操作。连接有三种基本类型:交叉连接,内连接,外链接。这三种连接的区别是它们采用的逻辑查询处理步骤各部相同,每种连接都有一套不同的步骤。交叉连接只有一个步骤—笛卡尔积;内连接有两个步骤—笛卡尔积,过滤;外链接有三个步骤—笛卡尔积,过滤,添加外部行。SQL语句的历史版本 SQL89(比较多) SQL92(标准) SQL99(标...
2019-11-17 18:55:24 2744
原创 Java中BigDecimal的使用浅析
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算...
2019-11-01 23:22:09 403
原创 sublime text安装插件失败解决方法
方法一:(官方推荐)官方链接:http://packagecontrol.cn/installation#st2由于packagecontrol.io容易被Q,访问不稳定,所以需要将Sublime Text安装插件的地址改为中文镜像的地址:第一步:通过控制台安装插件代码,通过 ctrl+` 或 View > Show Console打开控制台,将Python代码粘贴到控制台,回车。s...
2019-11-01 15:07:52 3186
原创 Java中的自动拆装箱机制详解
从JDK5后开始,为了减少开发人员的工作,Java提供了自动拆箱与自动装箱功能,下面就来讲解一下其内容自动装箱:把基本类型转换为包装类类型自动拆箱:把包装类类型转换为基本类型原理:自动装箱都是通过包装类的valueOf()方法来实现的.自动拆箱都是通过包装类对象的xxxValue()来实现的。好处:让基本类型也具有对象的特征,就出现了包装类型,将基本类型“包装起来”,使得它具有了对象的...
2019-11-01 13:30:09 697
原创 StringBuffer的用法
StringBuffer的添加功能public StringBuffer append(String str): * 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身public StringBuffer insert(int offset,String str): * 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身举例说明:StringBu...
2019-10-28 02:15:38 6675
原创 String和StringBuffer的详解,联系和区别
StringBuffer是一个具有对象引用传递特点的字符串对象。 StringBuffer对象可以调用其方法动态的进行增加、插入、修改和删除操作,且不用像数组那样事先指定大小,从而实现多次插入字符,一次整体取出的效果,因而操作字符串非常灵活方便。 一旦通过StringBuffer生成最终想要的字符串,就可调用它的toString方法将其转换为一个String对象。那么有人就问StringBuff...
2019-10-27 21:51:37 5171
转载 compareToIgnoreCase比较过程中需要先toUpperCase然后toLowerCase的原因
api说明:public static char toUpperCase(char ch)使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写。注意,对于某些范围内的字符,特别是那些是符号或表意符号的字符,Character.isUpperCase(Character.toUpperCase(ch)) 并不总是返回 true。通常,应该使用 String.toUpper...
2019-10-27 00:11:17 464
原创 Java中的常量优化机制
问题抛出:静态常量可以再编译器确定字面量,但常量并不一定在编译期就确定了, 也可以在运行时确定.所以Java针对某些情况制定了常量优化机制。常量优化机制:给一个变量赋值,如果等于号的右边是常量的表达式并且没有一个变量,那么就会在编译阶段计算该表达式的结果,然后判断该表达式的结果是否在左边类型所表示范围内,如果在,那么就赋值成功,如果不在,那么就赋值失败。但是注意如果一旦有变量参与表达式,那么就...
2019-10-19 21:11:35 4356 8
原创 解决高分屏下,chm帮助文档,api文档打开后字体过小的问题
像很多时候,我们编程需要查看一下api帮助文档,打开chm文件,发现字体特别小,不太适合我们阅读,这个就会觉得特别难受,那么如何解决api文档打开后字体过小的问题像一些4k高分辨率下,chm文件的正文部分的字体过小,这是这些网页可能使用了CSS维持字体dpi,在普通分辨率下,可以显示正常,但在高分屏下就会显示得过小,这时我们就需要调整显示网页的显示效果了,在Windows下打开chm其实是借助了...
2019-10-15 10:31:01 2585 3
原创 Java设置环境变量的作用和意义
Java设置环境变量的作用和原因在java 中需要设置三个环境变量(1.5之后不用再设置classpath了,但个人强烈建议继续设置以保证向下兼用问题)JDK安装完成之后我们来设置环境变量:右击“我的电脑”,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量:一、配置JAVA_HOME变量:为什么要配置classpath环境变量?一是为了方便引用,比如,JDK安装在...
2019-10-14 18:04:15 3260
原创 无法安装以下功能: NET Framework 3.5(包括.NET 2.0和3.0)无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动
安装.NET Framework 3.5失败,报错:解决方法:检查Windows更新是否被禁用了,禁用了或者没打开服务都会导致安装不上
2019-10-12 10:19:22 14953
原创 Oracle远程连接服务器出现 ORA-12170 TNS:连接超时解决办法
一、首先检查网络是否能ping通,下图网络是畅通二、检查TNS配置(TNS配置也没有问题)三、查看服务器监听服务是否启动四、如果上述都没有问题,使用tnsping命令检查,报TNS-12535: TNS: 操作超时,这时我们可以肯定是防火墙的问题解决方法:1:关闭防火墙(这种方案不推荐,关闭防火墙,会带来许多安全隐患)2:只开放Oracle服务的1521端口,允许1521端口被连接...
2019-10-11 22:07:44 9380
原创 Win10 上Oracle服务器开放端口1521给外部访问
一.oracle开放端口要用到自己的listener,设置监听程序打开Net Manager添加网络地址,包括主机ip,网络协议,端口默认1521,保存配置后就可关闭二.Windows需要在防火墙配置开放端口规则控制面板->系统安全->windows防火墙->高级设置->入站规则->新建规则自己定义一个名字即可完成三.这样,外部就可...
2019-10-11 21:39:56 15426 2
原创 ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求服务的解决方法
用自己电脑远程连接数据库服务器时,报错:“ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求服务“,检查PL/SQL连接也提示ORA-12514错误,网上搜了一下,说出现ORA-12514问题,一般为数据库监听相关设置出现问题。解决方法:1、管理---->服务和应用程序---->服务,启动所有关于oracle的服务项2、重新连接PL/SQL,依旧报错ORA-...
2019-10-11 21:23:35 2968
原创 PLSQL Developer登陆时报错:“ORA-12154: TNS: 无法解析指定的连接标识符”
报错:win10安装好PLSQL Developer软件后登陆时任然出现了“ORA-12154: TNS: 无法解析指定的连接标识符”。解决方法:直接取消登陆,在PLSQL Developer工具栏中找到“Preferences”,在Oracle的Connection节点中找到Oracle Home选择OraClient11g_home1,保存后关闭PLSQL Developer就可以正常登陆...
2019-10-11 01:33:02 3950 1
原创 Oracle数据库安装报错:[INS-32025] 所选安装与指定 Oracle 主目录中已安装的软件冲突
报错提示:所选安装与指定oracle主目录中已安装的软件冲突,原因卸载oracle没卸载干净,该目录地址在这里被占用了,所以会报错解决方法:32位系统:删除C:\Program Files(x86)\Oracle\Inventory\ContentsXML目录下的inventory.xml 文件64位系统:删除C:\Program Files\Oracle\Inventory\Conten...
2019-10-08 00:13:40 8286 2
原创 Java接口知识点详解
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,但是可以被实现。一个实现接口的...
2019-10-05 16:55:26 1366
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人