摘要:
1 线程同步问题的由来 多个线程共享资源没有进行控制 2 同步问题Java的解决方案 同步方法:当线程进入同步方法的时候,会获得同步方法所属对象的锁。一旦获得对象锁,则其他线程不能再执行被锁对象的其他任何同步方法,只有在同步方法执行完毕并释放后,其他线程才能执行。 synchronized 方法声明 阅读全文
摘要:
1 休眠方法sleep(毫秒数) sleep(毫秒数,纳秒数) 2 暂停方法yield() a.yield() 3 挂起方法join() a.join() 阅读全文
摘要:
1 继承Thread类创建线程 class 类名 extends Thread{ public void run(){ //相关代码 } } 2 实现Runnable接口 1 实现Runnable接口 class类名 implements Runnable{ public void run(){ } 阅读全文
摘要:
1 线程与进程 2 Java的线程模型 1、新建状态 线程被创建之后便处于新建状态 2、就绪状态 新建状态的线程调用start()进入就绪状态 阻塞状态的线程接触阻塞之后进入就绪状态 3、运行状态 处于就绪状态的线程获得了CPU的资源,该线程就进入了运行状态 4、阻塞状态 是一个正在运行的线程,因为 阅读全文
摘要:
1 创建自己的异常类 1、继承Throwable 2、继承Exception 修饰符 class 类名 extends Exception{} 2 使用自己的异常 自己定义的异常一般来说是用于throw 阅读全文
摘要:
1 手动抛出异常 throw exception;参数exception标识要抛出的异常对象,该对象是throwable类; 2 try catch finally是可以嵌套使用的。 阅读全文
摘要:
1 异常的分类 Throwable Error:java运行时的内部错误以及资源耗尽错误,不期望用户来处理。 Exception: Runtime Exception--运行时异常 非Runtime Exception--非运行时异常,大部分由环境导致 阅读全文
摘要:
1 静态内部类 1、在内部类前添加static修饰符 2、静态内部类中可以声明static成员变量;肥静态内部类中不可以 3、静态内部类不可以使用外部类的非静态成员变量 4、创建静态内部类的对象,不需要其他外部类的对象 //创建非静态内部类的形式 Outer o=new Outer(); Outer 阅读全文
摘要:
1 局部内部类 在类的局部位置进行定义的类叫做局部内部类。 在局部内部类里面可以访问外部类的所有成员变量。 局部内部类访问方法中的局部变量的时候,该局部变量必须声明为final类型 阅读全文
摘要:
1 内部类概述 一个类被嵌套定义在另一个类中,那么这个类就被称为是内部类,包含内部类的类就被称为是外部类。 内部类作为/相当于外部类的成员变量或者是方法。 如何构造内部类: Outer out=new Outer(); Outer.Inner in=out.new Inner(); in.print 阅读全文
摘要:
1 接口的实现 class 类名 implements 接口1,接口2,接口3{ 方法1(){ } 方法2(){ } } 接口实现的注意事项: 1、为接口中所有的方法提供具体的实现。 2、必须遵守重写的所有规则。 重写的规则: 1、子类的重写方法不能抛出更大的异常 2、子类的重写方法不能有更小的访问 阅读全文
摘要:
1 接口概述 extends只能是一个 implements可以多个 接口只有抽象方法,它是比抽象类还要抽象,接口是彻彻底底的抽象 接口是抽象方法和常量的属性集合 接口中只能够包含抽象方法和常量,不能够有变量、初始化块、构造器。 注意事项: 1,接口的修饰符只有两种:默认和public。 2,接口内 阅读全文
摘要:
1 抽象类的定义 抽象类是为子类提供一个规范。 public abstract 类名{} 修饰符 abstract 返回值类型 方法名(参数列表) 抽象方法没有方法体:public abstract void test(); 普通方法有方法体:public abstract void test(){ 阅读全文
摘要:
1 多态 实际上多态即为一个对象的多种状态 public class Test { public static void main(String[] args){ Animal t=new Tiger(); Animal d=new Dog(); showMe(d); } public static 阅读全文
摘要:
1 实现继承 super(); 在调用子类的构造器的时候,如果没有显示的写出super,那么编译器会 默认加上super()无参构造器。 如果想调用父类的有参的构造器,那么就必须显示地调用,编译器不会默认加上。 创建子类对象的过程就是从底层的基类开始,一层层网上调用父类的构造方法 super() s 阅读全文
摘要:
1 继承概念 父类、超类、基类 子类、派生类 Animal :type skin legcount eat() run() Tiger run() Sheep extends只能继承一个类,Java不支持多重继承。 子类继承父类之后,子类可以调用父类的属性和方法,也可以重写父类的属性和方法。 还可以 阅读全文
摘要:
使用final修饰过的变量都是不可改变的 1 final修饰变量 恒定不变的属性建议使用static修饰,变量名建议全部使用大写。 final修饰的变量不能改变,如果在程序中重新赋值,编译报错。 2 final修饰方法 任何继承类无法覆盖该方法。重载不会受到限制 3 final修饰类 该类不能作为任 阅读全文
摘要:
1 静态变量 静态变量属于类,和对象没有关系 非静态变量是属于某个对象的,每个对象都有该数据的副本,而静态变量只有一个。 访问静态变量是通过(类名.对象名)来访问的 2 静态方法 用static修饰的方法称为静态方法 访问静态方法是通过(类名.方法名)访问 1、静态方法不能访问非静态变量 2、非静态 阅读全文
摘要:
1 对象类型的参数传递 Java中只有值传递。基本类型,直传递值。 引用类型传递的是引用,而这个引用就是值。 基本数据类型作为参数,直接操作 引用类型作为参数,操作的是引用指向的堆内存中的对象 阅读全文
摘要:
1 方法的重载 在一个类中,可以有多个方法共享同一个名称,只要他们的参数不同就可以。 重载:具有相同的方法名称,不同的参数列表。 不同的参数列表指的是: 参数类型不同,参数数量不同,参数次序不同。 public static int sum(int a,int b){ } 确定是否重载的时候,判定依 阅读全文
摘要:
1 构造方法 作用是用于初始化参数。 所有的苏子变量全部设置为0,所有的boolean类型全部设置为false,所有的对象变量全部设置为空。 设计自己的构造方法: 1.方法名称必须和类的名称相同; 2.没有返回值; 如果自己写了有参的构造方法,那么编译器不会再提供默认的构造方法了。 如果还想用无参的 阅读全文
摘要:
1 方法 如果方法没有返回值,则必须写void,不能省略 如果有返回值,则定义的方法的类型必须和方法体内返回值的类型相同 public String returnString(){ return“返回值是字符串类型” } 2 主方法 它是程序的入口。 public static void main( 阅读全文
摘要:
1 类的概述 类就是事物的集合和抽象。它所代表的是这类事物共有的行为和属性。 2 类的一般形式 修饰符 class 类名{ 类型 变量名; 类型 变量名; ... 类型 方法名(参数){ } } /** 修饰符 类型 方法名(参数类型 参数1 参数类型 参数2){ 方法体 } */ public v 阅读全文
摘要:
1 多维数组基础 Java中只存在一维数组,多维数组只不过是数组中的数组。 两种初始化方式: 一: int[][] n1={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}, {17,18,19,20} }; 二: int[][] n2=new i 阅读全文
摘要:
1 获取数组长度 int[] array1=new int[10]; System.out.println(array1.length); 2 数组的复制 array1=array2; 复制之后,两个引用指向同一个数组,不管是哪个引用修改了数组的值,对于另一个 引用来说,元素的值也是修改的。 阅读全文
摘要:
1 数组概念 数组:就是一组数的集合,集合中的数据必须是相同类型的,并且每一个数组都有一个名字,也就是数组名,我们可以通过数组名来访问数组中的元素。 2 创建数组 public static void main(String[] args){} ArrayTpye arrayName[]=new A 阅读全文
摘要:
1 break语句 break 强制当前循环终止 break 跳出当前循环 跳出循环后继续执行后面的代码。 2 continue语句 continue 停止本次循环,继续执行剩下的循环 for(int i=0;i<10;i++){ if(i==6){ continue; } System.out.p 阅读全文
摘要:
1 while循环 while(条件){ //循环语句 } 条件:可以是boolean类型的值、变量和表达式,还可以是一个结果为boolean的方法 int i=1; while(i<=10){ System.out.println("第"+“次循环”); i++; } do-while:当我们需要 阅读全文
摘要:
1 if语句 if(条件){ //语句块 }else{ //语句块 } 条件:可以是boolean类型的值,也可以是boolean类型的变量。 也可以是返回值为boolean类型的表达式 嵌套if语句 if(条件1){ //语句块1 if(条件2){ //语句块2 }else{ //语句块3 } } 阅读全文
摘要:
1 关系运算符 返回值是boolean 一般用于判断语句当中 ==等于 !=不等于 >= <= 2 逻辑运算符 &逻辑与 |逻辑或 !逻辑非运算 &&短路与 ||短路或 与 运算符:所有条件都为真, 则结果为真,有一个为假,则为假。 boolean b; b= condition1&conditio 阅读全文
摘要:
+ 加法运算 - 减法 * 乘法 / 除法 % 取模 ++ 自加运算 -- 自减运算 += 加法赋值 -= 减法赋值 *= 乘法赋值 /= 除法赋值 1 基本运算符 2 模运算法 % 是求两个整数相除的余数 取模运算不建议使用浮点型,结果可能不准确 对于精度搞的运算,需使用BigDecimal类型 阅读全文
摘要:
1、字符串处理 求子串。HelloWorld //5<=n<9 String str="HelloWorld"; str=str.substring(5,10); --即可求出World 测试字符串是否相等。equals Object equals 比较内存地址 String equals 比较内容 阅读全文
摘要:
背景: 当前数据库中已有部分数据,因需用到更多数据,因此要对数据库表增加(拷贝)一行内容。 步骤: 1.新添加一个表,和已有game起相似的名字,如game1,即为: create table game1 as select * from game; 2.在新表中更新字段的数据(自增id),即 up 阅读全文
摘要:
1、字符串变量 String类型 “Hello World” 字符串的连接 可以用+来连接两个字符串,+表示连接两个运算符 “名字为:”+name+“\n性别为:”+sex"; 每个转义字符都是由两个符号组成,但编译器把他们当做一个字符。 \n 换行符 \t 制表符 \r 回车符 阅读全文
摘要:
1、赋值 赋值:给变量指定一个值或改变一个变量的值; int speed=30; variable = expression; //变量类型 变量名=表达式 2、初始化 局部变量:必须显示地进行初始化 实例变量和类变量:编译器可自动对齐初始化 boolean默认值为false char '\000' 阅读全文
摘要:
1、自动类型转换 目的类型比原来的类型大 两种类型是相互兼容的 byte->short short->int char->int int->long int->double float->double float float4字节,double8字节 两个数中有一个为double类型,另一个也被转换 阅读全文
摘要:
1、java变量 变量:可以改变的量 命名规则 遵循标识符明明规则 尽量使用有意义的单词 一般首字母小写 成绩:score 身高:height 2、常量 常量:值不可改变 定义常量,使用final关键字 习惯上都使用大写 阅读全文
摘要:
1.byte类型 1字节 -128~127 2.short类型 2字节 -32768~32767 3.int 4字节 4.long 8字节 5.char 2字节 采用unicode机型编码,支持中文 6.float 4字节 7.double 4字节 8.boolean true 真 false 假 阅读全文
摘要:
1.客户端容错测试 概念:容错性测试是主要检查系统的容错能力,检查软件在异常条件下自身是否具有防护性的措施或者某种灾难性恢复的手段。 在我们的客户端中,容错测试主要是模拟服务器通过返回504、502、404、307,查看app是否根据相应场景做出对应限制。各类HTTP返回状态码详细说明: http: 阅读全文
摘要:
整理出Fiddler的实用功能,之后会不定期更新总结。这是一个长久的战役。 1.Fiddler主页本来未显示“ServerIP”,想要将其调出,解决步骤: 1. 运行fiddler,菜单,Rules->Customize Rules…或者点击右侧tab“FiddlerScript” 2. Ctrl+ 阅读全文