1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值. 3,应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE. 4,应尽量避免…
(3)循环结构 格式: for(初始化表达式,循环条件表达式,循环后的操作变大时){ 执行语句,循环体: } 注: a. for循环里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止. b. while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放,而while循环使用的变量在循环结束后还可以继续使用. c. 最简单无限循环格式,while(t…
上一篇中简单谈了一下自己对Java的一些看法并起了一个头,现在继续总结java的相关语法.java语法总体上与C/C++一样,所以对于一个C/C++程序员来说,天生就能看懂Java代码.在学习java的时候,上手非常快.我感觉自己就是这样,看代码,了解其中一些重点或者易错点的时候发现,与C/C++里面基本类似,甚至很多东西不用刻意去记,好像自己本身就知道坑在哪.所以这里我想简单列举一下语法点,然后尝试用C/C++的视角来解读这些特性. 引用类型 引用中的指针与内存 上一次,我总结一下java中的…
package p2; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class ForEachDemo { public static void main(String[] args) { /* * foreach语句: * 格式: * for(类型 变量 : Collection 集合|数组) * { * * } * * 传统f…
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 方法/函数 Method/Function // 为什么会出现方法? // 原因1.在程序中多处出现相同的语句内容 // 原因2.会发生变化 // [只有变化是不变的] // 回顾一下变量,为了应对变化,提出的新的机制 // 需要对变化进行封装处理,在这里就是要对一系列的语句进行封装,得到方法的概念 // [方法的封…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note2.html,转载请注明源地址. 1.数据类型 Java数据类型有: 原始数据类型(Primitive Data Types ) 引用类型(reference type ) Java原始数据类型又称基本数据类型,它说明了在程序中所能表示的基础数据的种类,通常有8种.引用类型包括类.接口等,具体内容将在后面文章中介绍. Java原始(基本)数据类型: boolean     布尔型,  …
int a = 1; a = a++; 1,取出a的值1作为a++表达式的值(a++表达式等于1) 2,a增加1变为2 3,执行赋值运算,a++表达式的值再赋给a,a又成为了1. ----------------------------------------------- package pack01; public class HexBie { public static void main(String[] args){ int a = 1; a = a++; System.out.pri…
数组 为什么要有数组? 案例:一个养鸡场有六只鸡,他们的体重分别为3kg,5kg,1kg,3.4kg,2kg,50kg.请问这六只鸡的总体重和平均体重是多少? public class test5 { public static void main(String[] args) { //如果没有数组就要定义六个变量,然后算出结果,太麻烦了 //现在我们定义一个可以存放6个float类型的数组 float arr[] = new float[6]; //给数组的各个元素赋值 arr[0] = 3;…
一.类和对象的概念 类 >>具有相同属性和行为的一类实体 对象 >>实物存在的实体.通常会将对象划分为两个部分,即静态部分和动态部分.静态部分指的是不能动的部分,被称为属性,任何对象都会具备其自身的属性:动态部分指的是对象的行为 类实质上就是封装对象属性和行为的载体,而对象是类实例化出的一个实例 二.面向对象的三大特性 封装 >>将对象的属性和行为进行包装,隐藏其实现细节,称为封装 >>采用封装的思想保证了类内部数据结构的完整性,应用该类的用户不能轻易的直接…
java基础类库 Scanner类(java.util.scanner) Scanner对象.hasNextXxx(),hasNext()默认方法为字符串://Returns true if this scanner has another token in its input. Scanner对象.next(); //Finds and returns the next complete token from this scanner. Scanner sc = new Scanner(Sys…
数组声明 java语言中,数组是一种最简单的复合数据类型.数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素. int arr1[]; int[] arr2; 两种写法都可以. 初始化 动态初始化 使用new来为数组分配内存空间: int[] arr; arr = new int[10]; 需要注意的是分配内存空间时要指定数组的数量,同时数组中的每一个元素都会被设置为对应类型的默认值. 内存结构 静态初始化 相对于上面的初始化,还有一种…
java条件语句 if...else 单独使用if if(布尔表达式){ 如果布尔表达式为true,执行花括号里的代码 } public static void main(String[] args) { int i = 2; if (i >3) { System.out.println(i); } } 可以试下,i改成大于3的就会打印3 if...else if(布尔表达式){ 如果布尔表达式为true,执行该花括号里的代码 }else{ 如果布尔表达式为false,执行该花括号里的代码 }…
方法的定义:方法名称,返回值,参数列表,修饰符(权限修饰符,final,static),实现体. 参考自:<Java 程序设计与工程实践> 方法的签名: 唯一区别其他方法的元素:(1)方法名称:(2)参数类型列表(参数顺序和类型).这就是方法的签名. 方法的签名不包括方法的返回值.虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法. example:(1)public void on(){} public int on(){};这样两个方法编译器依然认为是相同的方法…
Java语言中提供3中跳转语句,分别是break语句.continue语句和return语句. break语句 可以用在switch语句中.在switch语句中,break语句用于中止下面的case语句.实际上,break语句还可以应用在for.while和do...while循环语句中,用于强制退出循环,也就是忽略循环体中任何其它语句和循环条件的限制. 代码中,虽然for循环被设计为计算从1~100之间所有连续整数的和,但是由于当累加和大于1000时使用break语句中止for循环,所以当循环…
ArrayList 集合 ArrayList 集合 ArrayList<String> list = new ArrayList<>(); 对于ArrayList来说,有一个尖括号<E>代表泛型. 泛型:也就是也就是装在集合当中的所有元素,全部都是统一的什么类型 注意:泛型只能是引用类型,不能是基本类型 数组有一个缺点:一旦创建,程序运行期间长度不可以发生改变 ArrayList 集合和数组的区别: 数组的长度不可以改变. 但是ArrayList的长度可以改变. 注意事…
Java文件读写 Java中I/O流对文件的读写有很多种方法,百度后主要看了以下三种 第一种方式:使用FileWriter和FileReader,对文件内容按字符读取,代码如下 String dir = "E:\\soft\\aaa\\a.txt"; File file = new File(dir); //如果文件不存在,创建文件 if (!file.exists()) file.createNewFile(); //创建FileWriter对象 FileWriter writer…
一.一维数组 1.声明,分配内存 int[] a=new int[10]; 数组元素的数据类型 [] 数组名=new 类型 [数组元素个数]: 2.初始化 int[] a=new int[] {1,2,3,4}; int b[]= {5,6,7,8}; 3.使用 for(int x:a ) { System.out.println(x); } for(int i=0;i<4;i++) { System.out.println((i+1)+":"+a[i]); } 二.二维数组 1…
04面向对象-内部类/访问修饰符/final 1.static的介绍 static:关键字,静态的 static的作用是用来修饰类中的成员 2.访问一个类中的某一个成员变量 方法一: _1.创建对象 _2.通过对象调用成员变量 3.如果一个类的成员变量static修饰,那么想访问这个成员 直接通过类名.成员变量名 什么时候的成员变量需要static修饰? _如果这个成员不属于某一个对象,而是属于所有对象共有的,那么需要加上static修饰 static修饰的成员变量/成员方法的使用 1.建议直接…
一.StringBuffer类 StringBuffer是一个可变字符序列. 1.1 构造函数 StringBuffer() 构造一个不带字符的字符缓冲区,初始容量为16个字符. StringBuffer(int capacity) 构造一个具有指定初始容量的字符缓冲区 StringBuffer(String str) 构造一个内容为指定字符串的字符缓冲区,初始容量为字符串容量加上16 1.2 StringBuffer类的常用方法(StringBuffer没有静态方法) 1.2.1 String…
一.三元运算符 A:格式    比较表达式?表达式1:表达式2;   B:执行流程:    首先计算比较表达式的值,看是true还是false.    如果是true,表达式1就是结果.    如果是false,表达式2就是结果. 二.if语句  (1)三种格式   A:格式1    if(比较表达式) {     语句体;    }       执行流程:     判断比较表达式的值,看是true还是false     如果是true,就执行语句体     如果是false,就不执行语句体  …
1.输出100到1000的水仙花数: public class LoopTest{ public static void main(String[] args){ int bai = 0; int shi = 0; int ge = 0; for(int i = 100; i < 1000; i++){ bai = i/100; shi = i/10%10; ge = i%10; if(bai*bai*bai+shi*shi*shi+ge*ge*ge == i ){ System.out.pri…
接触到的教程中if语句所包含boolean表达式都是以数字作为举例,所以误以为string类型的值也可以这样判断,结果发现下面的脚本不工作: String sysTitle = driver.getTitle(); String expectedTitle="DVA Demo"; if (sysTitle==expectedTitle) { System.out.println(sysTitle); } 要比较两个string, 应该用下面的方法: String expectedTit…
switch是一种选择语句,可以通过匹配某个条件,来执行某块代码 switch(expression){ case value: break;//可选 default://可选 //语句 } switch语句变量类型:可以是byte,short,int,char,或者String类型. case的值数据类型必须与变量的类型相同.而且只能是常量或字面常量 当变量的值与case语句的值相同时,case语句之后的代码开始执行,至到break语句出现才会跳出switch语句 如果没有break语句,会继…
一.for循环 语法: for(变量初始化:条件判断:更新循环变量){ 循环体: } 案例: 二.while循环 语法: while(条件){ 循环体: } 如果条件为true,执行循环体,false则退出 三.do-while循环 语法: do{ 循环体: }while(条件): 执行过程:先执行循环体,然后判断,为true则执行循环体,false则退出. 四.for循环,while循环,do-while循环的区别 1)明确了循环次数之后 建议使用for循环 2)for和while循环可能一次…
Java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 关键字 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class interface byte short int long float double char boolean void 用于定义数据类型值的关键字 true false null 用于定义流程控制的关键字 if else switch case default while do for brea…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡的过程 一个线程在任何时刻都处于某种线程状态(thread state) 线程生命周期状态图 诞生状态 线程刚刚被创建 就绪状态 线程的 start 方法已被执行 线程已准备好运行 运行状态 处理机分配给了线程,线程正在运行 阻塞状态(Blocked) 在线程发出输入/输出请求且必须等待其返回 遇到…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为一个进程,例如:用字处理软件编辑文稿时,同时打开mp3播放程序听音乐,这两个独立的程序在同时运行,称为两个进程 进程要占用相当一部分处理器时间和内存资源 进程具有独立的内存空间 通信很不方便,编程模型比较复杂 多线程 一个程序中多段代码同时并发执行,称为多线程,线程比进程开销小,协作和数据交换容易…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理设备之间的数据传输,对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中 输入/输出流可以从以下几个方面进行分类 从流的方向划分: 输入流.输出流 从流的分工划分: 节点流.处理流 从流的内容划分: 面向字符的流.面向字节的流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的. 这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制. Java 反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类. 在运行时构造任意一…
java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/arch…