自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (4)
  • 问答 (11)
  • 收藏
  • 关注

转载 JVM加载类的过程

[原文地址]总体来说JVM加载类的过程分为三步:加载、链接、初始化加载加载,是指查找字节流,并且据此创建类的过程。说到这个过程我们就要介绍一下几种类加载器Java9之前类加载器一共分为三种:启动类加载器、拓展类加载器和应用类加载器 启动类加载器启动类加载器是用来加载最基础最核心的类(jre/lib下的jar包如rt.jar Java的工具类就在这个包里)以及其他类加载器。启动...

2019-05-13 19:53:53 157

原创 装饰器模式

装饰器模式说白了很简单,先来一张图 Component:组件对象的接口,可以给这些对象动态的添加职责; ConcreteComponent:具体的组件对象,实现了组件接口。该对象通常就是被装饰器装饰的原始对象,可以给这个对象添加职责; Decorator:所有装饰器的父类,需要定义一个与组件接口一致的接口(主要是为了实现装饰器功能的复用,即具体的装饰器A可以装饰另外一个具

2018-01-11 10:46:41 228

原创 ajax异步加载原理

最近学到ajax异步加载更新页面数据在这里记录一下ajax异步上传的关键其实是xmlHttpRequest,这个东西是由浏览器创建的,浏览器可以通过内建的xmlHttpRequest对象和服务器进行数据交互流程为:浏览器创建对象=>xmlHttpRequest对象发送数据=>服务器返回数据=>浏览器接受响应码=>做出响应调用页面的js函数对页面进行更新,至于ajax具体怎么使用可以直接去w3s

2018-01-11 09:22:37 1072 1

原创 c#使用DsoFramer实现word嵌入(winform版)

前段时间给老师做一个试题录入、组卷的程序,需要把word嵌入到winform中,用dsoframer的时候遇到了很多问题。在这记录一下版本选择版本的话尽量选1.3吧,主要原因是网上的资料基本上都是基于1.3的。我之前试了一个2.3版本的,遇到了太多问题,最后还是换回了1.3注册控件这个其实没有什么好说的,网上都有。32位的把dsoframer.ocx文件放在c:\window

2017-11-30 14:18:23 12514 1

原创 线程同步

synchronized是属于对象实例的 当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 这句话是在网上看到的,写的比较明白,这里说明了几个问题首先,synchronized是对一个类的实例对象起作用的,什么意思呢,举个例子public c

2017-07-12 20:13:04 245 1

原创 白帽子讲web安全第二章笔记

同源策略 同源策略是浏览器最核心也最基本的安全功能。Web是构建在同源策略的基础之上,浏览器只是这对同源策略的一种体现。 其表现方式为不同源的对象无法相互干扰。源的判断方式 影响源的因素有 host(域名或Ip地址),子域名,端口,协议(像http,https就是不同源的)跨域加载 在浏览器中 <script><img><iframe>等带有src的标签都可以实行跨域加载资源,

2017-05-17 12:59:20 485

原创 PHP使用mysqli进行数据读取

首先要与数据库建立连接$servername="servername";//数据库地址如localhost$username="username";$password="password";$conn=new mysqli($servername,username,password); 执行SQL语句可以通过mysqli执行也可以通过mysqli的实例执行$sql="sql语句";m

2017-05-13 21:06:05 8495 3

原创 python的列表和字典(简单介绍)

python的字典Python的字典以键值对的形式保存数据,可以以键来访问字典中保存的值而不能用下标访问。字典中几乎可以包含任意的变量,字典,数列,元组。数列也一样。 python字典的方法Python字典添加元素的方法是直接添加键值对 字典的排列顺序是随机的//a为字典a["字典元素":"新元素"]删除则是使用del关键字del a["字典元素"]a.clear()#该方法将清除字典

2017-05-02 18:55:06 3114

原创 Python中的面向对象特性(更新中……)

python中没有方法的重载 python中的类方法 类方法,被@classmethod装饰的方法,类对象和实例都可以调用类方法 类方法也必须有一个类似与self的参数,不过他代表的是类对象而不是实例对象 python类中的成员变量python中的成员变量的值在通过方法改变的时候都必须是self.变量名=.....其实这很好理解,self代表的实例变量,那实例变量的值当然就应该通

2017-05-02 18:53:46 402

原创 python 3.0特点(更新中……)

取消了L型数字的表示方法,所有数字都可以直接表示取消了raw_input()方法,统一使用input()取消了反引号,但是repr()还能使用(repr可以使数字转化为字符串)如 print("字符串"+repr(1))python的语句块不是靠大括号分割的,而是靠缩进区分python跨行字符串和公式后面必须加上转义符\python有序列概念,和C++中的数组差不多如:liu=[

2017-05-02 18:51:01 456

原创 C++数组的内存模型分析

C++中的数组数组的本质和指针差不多。讲到数组的原理就要先说明一下C++ 中的地址,C++ 中地址的值就是一个变量所占内存空间的第一个格。 我举一个二维数组的例子。#include<iostream>using namespace std;int main(){ int b[2][2]; cout<<"b: "<<b<<endl; cout<<"b0: "

2017-04-08 18:27:50 622

原创 C++指针

C++指针的实质其实就是变量,只不过一般变量存储的是一个数值,而指针存储的是一个地址。 从下面这个例子可以清楚的看出指针的本质#include<iostream>using namespace std;int main(){ int a=10; int *p; p=&a; cout<<p<<"\t"<<*p<<"\t"<<&p<<endl;//p是指针指向变量的

2017-04-04 16:00:59 259

原创 Java中对象交换的问题

关于Java中方法参数的传递正如大家所知,Java传参和C/C++是基本相同的,基础变量是方法内创建一个副本指向数值,在方法内改变基础变量就是改变它所指向的值,引用变量则也是创建一个副本(划重点)指向与传的参数指向地址。二者的本质是一样的。 为什么引用变量的成员变量值可以在方法中改变?其实一个类中的成员变量就好像是一个数组里的变量。当把一个引用变量作为参数传进方法中时,方法创建了一个引用 变

2017-04-04 15:59:34 5423

转载 Java可变参数方法

原理Java可变参数事实上是将一个数组传入了方法。例如://求最大值方法public double max(double...values){//这里的点点点是实际的代码 double largest=Double.MIN_VALUE;//后面的是Java自带的常量 for(double v:values){ if(v>largest){

2017-03-16 13:52:12 329

原创 C++接口

C++中接口的使用在C++中使用接口会使用户代码和实现代码完全分离,在.h文件声明抽象方法,在.cpp文件实现方法。例如: 接口类//TestClass.hclass test{ public : void a();};实现方法//TestClass.cpp#include<iostream>#include"TestClass.h"using namespace st

2017-03-16 13:51:22 277

原创 C++参数传递的问题

C++的参数传递C++的参数传递和Java一样。值传递参数传的是一个参数的副本,改变该副本的时候只是将副本指向的地址改变为一个新的地址。而传递对象时传递的就是一个引用,对该副本进行操作时就是直接对原参数地址的内容进行操作 C++传递值的对象虽然C++传值不会改变原来变量的内容,但是可以通过以下方法实现通过参数副本改变数值类型参数的值。例:class test{ public :

2017-03-16 13:50:41 318

转载 Java的单例模式

http://www.jianshu.com/p/d06983983c0a?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=qq

2017-03-16 13:49:45 181

原创 继承

Java创建子类实例对象Java里的子类创建实例时会自动调用父类的无参构造器。即便你使用的是子类的有参构造器。 Java中的初始化问题Java中有一个叫做多态的特性,即父类可以调用子类重写的父类方法,其实现方式如下。class Parent{ public void test(){ System.out.println("Father"); }}class

2017-02-26 22:02:37 219

转载 Java 实例 - 压栈出栈的方法实现字符串反转

以下实例演示了使用用户自定义的方法 StringReverserThroughStack() 来实现字符串反转: 转载于http://www.runoob.com/java/data-reverse.htmlimport java.io.IOException;public class StringReverserThroughStack { private String input;

2017-02-25 20:35:33 1864

原创 Java的内联函数

java的内联函数内联函数的含义就是对函数(方法)进行某种处理,在程序运行的时候将函数(方法)展开,转换为代码。要问这样做的意义就不得不提到方法(Java中没有函数,以下用方法表示)的运行原理。 调用方法的原理调用某个方法实际上将程序执行顺序转移到该方法所存放在内存中某个地址,将方法的程序内容执行完后,再返回到转去执行该方法前的地方。这种转移操作要求在转去前要保护现场并记忆执行的地址,

2017-02-25 20:15:38 8709

原创 Java内部类

内部类种类 成员内部类和其他成员变量相同,外部类类无法直接建立该内部类实例,也不能通过创建外部类实例创建内部类实例,但是可以通过创建外部类实例调用方法返回内部类对象例:public class Out{ int a; public Inner init(){ Inner in=new Inner(); return in; } p

2017-02-24 22:52:35 200

原创 线程创建方式

创建线程的方法 使用一个类继承Thread类,之后通过该类重写run方法,可以直接通过创建该类对象的start方法创建线程。 通过实现Runnable接口创建线程类。创建线程时new Thread(实现接口的类实例,"创建线程的名称").start();对比两种方法,其中最大的差别就是通过实现Runnable接口的方法创建的线程资源是共享的,因为实现接口的类将成为线程的target。

2017-01-21 19:21:56 249

原创 控制用户的输入流程

前些日子有个作业是要求写一个能存储学生信息的小程序,程序要求能够控制用户输入的信息。这里我想请教的是关于流程控制的问题while(true){try{Scanner input=new Scanner(System.in);/*获取输入后经过各种判断,如果有任何一项不符合就抛出异常,跳过这次循环。*/break;//在判断没有任何异常之后就跳出循环,执行目标}//各种异常和自定义异常

2017-01-21 14:27:02 265 1

原创 对象序列化

对象序列化 对象序列化的目标是将对象保存在磁盘中或者允许其在网络中直接传输对象。对象序列化机制会将内存中的Java对象转化为与平台无关的二进制流。其他程序可以通过该二进制流恢复成原来的Java对象要使对象能够序列化就必须实现下面两个接口中的一个SerializableExternalizable Serializable是一种标记型借口,没有实现方法,但是缺少该接口对象将无法完成序列化

2017-01-16 17:52:59 201

原创 Java的final笔记

finalfinal final关键字可用于修饰类、变量、和方法。 final修饰变量时,该变量一旦获得了初始值就不可在改变。final修饰成员变量 final修饰类变量 final修饰成员变量中的类变量必须在声明该变量时或在静态初始化块中分配初始值。 final修饰实例变量 final修饰实例变量时必须在非静态初始块、声明该实例变量或构造器中指定初始值

2017-01-14 17:03:53 326

原创 为什么PrepareStatement可以防止sql注入

为什么Statement会被sql注入因为Statement之所以会被sql注入是因为SQL语句结构发生了变化。比如: "select*from tablename where username='"+uesrname+ "'and password='"+password+"'"在用户输入’or true or’之后sql语句结构改变。select*from tablename where

2017-01-14 16:56:50 2691

原创 JDBC驱动

JDBC>加载驱动Class.forName(driver);mysql的driver是 com.mysql.jdbc.Driver 2. >创建连接Connection conn=DriverManager.getConnection(url,user,password);其中mysql的url为jdbc:mysql://127.0.0.1:3306/数据库名称?characterEnco

2017-01-14 16:55:03 250

原创 Java的io流使用

File类 File类是java.io包下代表与平台无关的文件和目录。如果希望在程序中操作文件和目录,都可以通过File类来完成。 注意:File能新建、删除、重命名文件和目录但是不能访问文件内容本身,要访问文件本身时就要使用I/O流(输入/输出流)Java的IO流 输入流: 只能从中读取数据,而不能向其中写入数据 输出流: 只能向其写入输出,而不能从中读取数据。

2017-01-14 16:54:16 367

原创 从1到1000的质数

质数判断 问题,输出1000以内质数。 什么是质数? 只有1和他自己两个因数的是质数。 思路 1. 创建一个数为递增素数,从2开始。 2. 创建一个因数,从2开始。 3. 创建两个循环,两个循环嵌套,分别使质数和因数递增。 4. graph LR余数为零-->是余数为零-->否是-->判断该因数是否为质数否-->继续循环判断该因数是否为质数-

2017-01-14 16:52:38 4045

原创 开灯问题

问题:有n盏灯,编号为1~n。第1个人把灯都打开,第2个人按下所有编号为2的倍数的灯的开关,第3个人按下所有编号为3的倍数的灯的开关。一共有k个人,问最后有哪些灯开着?(k<=n<=1000) 方法1(书上方法) 1. 首先确定灯和人的数量,并声明一个布尔变量代表灯的开关状态。 2. 嵌套循环,外循环为人的序号。内循环为灯的序号。 3. 人和灯都从1开始增加,先确定人的序数,再

2017-01-14 16:51:16 1477

原创 我在学习Java时遇到的一些问题

问题输入语句是怎么执行的?答案:首先创建一个键盘扫描类的对象Scanner input=new Scanner(System.in);之后才是真正的输入  int a=input.nextInt();//这里将输入转化为了数字String b=input.next();//这里则是字符串

2016-10-01 08:02:50 535

原创 关于Eclipse开发安卓系统时的继承问题

在初学安卓时,发现大神的代码中MainActivity都是继承的Activity,但是我写的却是继承ActionbarActivity。后来才发现原来是版本问题。安卓3.0以下的系统不支持activity提供的actionbar所以在选择最低版本时如果低于3.0就会继承ActionbarActivity。

2016-10-01 07:51:22 345

【电子版】校招面试题库(附答案与解析)java篇.zip

牛客网【电子版】校招面试题库(附答案与解析)java篇.

2019-10-07

计算机是怎样跑起来的. 高清pdf

完整的----------------------------------------------------------------------------------------------------------------

2018-02-10

Java编程思想第四版完整中文高清版

java编程思想第四版,高清完整版。。。。。。。。。。。。。

2018-02-07

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除