Java学习
Nothing_doit
区块链技术研究
展开
-
for循环的经典程序分析
1.单层for循环,利用for循环打印输出1~100之间的所有整数(最基础的)然后通过与if-else语句结合实现更多的功能。 可以看出利用for循环可以遍历整数。/* 1. 输出从1到100之间所有的整数;(简单的单层for循环)**for循环遍历整数** 2. 输出从1到100之间所有的奇数;(通过与if-else结合,有条件的输出语句) 3. 输出从1到100之间所有原创 2016-07-22 22:48:44 · 7096 阅读 · 1 评论 -
抽象
抽象类:对现实世界一种类型的多种实体的统一抽象定义。 具体类:一种实体的抽象描述。 具体类再抽象就是抽象类。 抽象类:某些方法的实现因为子类的不同而不同,故可以在父类中声明抽象方法,交由子类具体实现这些方法。抽象类: 1.使用abstract修饰 2.子类必须重写全部抽象方法(实现),若是部分没有实现就还是抽象类。 3.抽象方法必须在抽象类中 4.抽象方法只有方法的声明,没有方法的原创 2016-08-05 23:36:13 · 822 阅读 · 0 评论 -
接口
inteface 接口:现实世界不同类型事物的共同行为特征,关注方法。 1.接口中的所有属性均视为静态常量 2.接口中只允许有抽象方法 3.没有构造器 4.多继承机制,可以实现多个接口 5.接口的用途就是让类来实现的 6.实现接口必须对接口中的所有方法进行实现,否则定义为抽象类 7.一个类可以在继承一个类的时候实现接口(先extends再implements) 8.定义接口相当于定原创 2016-08-05 23:47:17 · 998 阅读 · 0 评论 -
二维数组
二维数组:(本质,以一维数组作为数组的元素)因为数组中的元素可以是任意类型。 声明创建语法: int[][] iArrArr = new int[一维数组的个数][一维数组的长度]; 二维数组可以先不定义一维数组的长度,但是必须先定义一维数组的个数。使用增强嵌套for循环可以进行遍历或者使用经典for循环进行遍历//其中牢记,二维数组中保存的元素是一维数组,一维数组保存的元素是类型值for(原创 2016-08-02 23:26:56 · 752 阅读 · 0 评论 -
继承
继承—描述类与类之间的关系。 从现有类创建子类,现有类称为父类,基类,超类。继承特点: 1.子类继承父类的所有成员(构造器除外) 2.子类不能直接访问父类的私有成员。 3.单继承(一个子类只能有一个直接父类)super关键字和构造方法总结: 构造器:1.所有的类都必须有构造器 2.所有子类构造器必须有对父类构造器的调用(通过super)super:可以用于访问父类中的成原创 2016-08-02 23:36:26 · 705 阅读 · 0 评论 -
多态
多态多态:子类对象被赋值给父类引用(父类引用指向子类对象) 本态:子类对象被赋值给本类引用Java程序执行过程有编译时类型,运行时类型 编译时类型,编译器在编译时只关注引用类型 运行时类型,此时程序怎么执行主要看对象多态形成: 子类重写父类的某一方法,子类对象创建好后,将地址赋给父类引用,因为父类中有子类重写的方法,这样可以欺骗编译器通过编译,然后在执行的时候主要是看对象,此时运行的是子类重原创 2016-08-02 23:59:13 · 1040 阅读 · 0 评论 -
IO流
IO流用来处理设备之间的数据传输。 数据传输:源结点——目标结点(他们之间需要一条通道) 输入流 输出流源文件-------程序-------目标文件(对于程序而言:当程序读文件时,程序作为目标结点,通道为输入流,当程序写文件时,程序作为源节点,通道为输出流,输入/输出流是一个相对的概念)流的分类: 输入流 输出流字节流 Inp原创 2016-08-15 23:50:24 · 777 阅读 · 0 评论 -
线程
创建并启动一个线程的方法 1) 实现接口的方式 ① 写一个具体类, 实现Runnable接口, 并实现其中的run方法,这个run方法就是线程的入口方法 ② 创建这个类的对象, 并以这个对象为实参, 创建Thread类的对象 ③ 调用Thread对象的start()方法 启动线程/** * 多线程打印偶数,奇数 */pu...原创 2016-08-18 22:10:23 · 3587 阅读 · 0 评论 -
异常
异常:程序执行时发生的不正常情况。一旦出现异常,后边的语句没有机会执行,程序崩溃,提前结束。 因此我们在程序设计的时候要对异常进行处理。异常分类: 按照严重程度: 1.Error严重错误 2.Exception普通异常 按照处理要求分类: 1.受检异常:在程序中必须接受检查和处理异常(Exception及其子类(除Runti原创 2016-08-08 21:08:43 · 786 阅读 · 0 评论 -
网络编程
代码分享: 1.多个用户访问一个服务器import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.Socket;public class ClientTest {原创 2016-08-22 23:35:29 · 599 阅读 · 0 评论 -
常用类
包装类(Wrapper)装箱:包装类使得一个基本数据类型的数据变成了类。 拆箱:将数字包装类中内容变为基本数据类型。 有了类的特点,可以调用类中的方法。 对于8中基本类型,都有其相应的包装类,int—->Integer char —–>Character 这样就可以调用包装类中的方法。 其余的都是基本数据类型,首字母大写。在JDK1.5以后,支持自动装箱,自动拆箱。 有关自原创 2016-08-11 00:11:08 · 962 阅读 · 0 评论 -
单例模式
本博客就简单的写一个单例的程序,了解单例的实现方式。 单例:在程序运行期间只允许有一个对象。 先简单的说下饿汉和懒汉的实现方式,在端上代码。饿汉式: 1.私有化构造器,防止外部随意创建对象。 2.在类内部创建对象。(类内部声明私有的静态引用变量,并创建唯一的对象,将对象的地址写入该引用变量) 3.给外界提供公共静态方法用于获取类中唯一的对象。懒汉式: 1.私有化构造器,防止外部随意创建对原创 2016-08-04 20:47:52 · 711 阅读 · 0 评论 -
Java学习-循环(while&do-while)
/** 循环结构 初始化语句 循环条件判断语句 循环体 迭代语句 初始化语句 while(循环条件) {//条件为真,执行{} 循环体 //希望重复执行的语句 迭代 }*//* 打印一个20*8的矩形 解决方法:每次打印8个*,循环打印20次就好*/pu原创 2016-07-21 21:45:24 · 1133 阅读 · 0 评论 -
Java学习-循环(for)
/** for (表达式1; 表达式2; 表达式3;) { 循环体 } 表达式1:初始化语句 表达式2:条件表达式(用于循环的判断) 表达式3:迭代语句(使循环趋于结束) 循环体 第一次循环之后,迭代语句是每次循环的开始语句*//* 打印一个20*8的矩形*/class LoopTest6 { public sta原创 2016-07-21 21:46:57 · 2092 阅读 · 0 评论 -
Java-HelloWorld
package basis.day01;/** * 此处为文档注释,生成文档黑窗口(javadoc.exe) * myeclipse利用导出javadoc生成 * Java学习第一课 * @author LENOVO * */public class HelloWorld { /* * 1.java源文件以.java为扩展名。 * 2.一个java源文件中原创 2016-07-08 01:16:34 · 841 阅读 · 0 评论 -
Java-标识符和变量
标识符的注意事项package basis.day02;/** * 标识符的命名规则,命名规范(遵守规则,规范) * @author LENOVO * */public class TestIdentifier { /* * 标识符:所有可以自己命名的东西。 * * 标识符的命名规则: * 1.可以使用26个字母大小写,0-9数字, _原创 2016-07-09 20:43:13 · 1684 阅读 · 0 评论 -
Java学习之引用传递
Java语言中有基本类型和引用类型(String类型,生成的对象),这两种类型在内存中的存储方式是不同的,基本类型我们在对其赋值的时候,直接将值进行复制,而我们对引用类型操作时,主要是**对其的引用进行操作**。对引用传递进行分析。 package transmit;/** * 测试Java中的引用传递 * @author LENOVO * */public class TestQu原创 2016-06-30 01:18:08 · 553 阅读 · 0 评论 -
Java-连接Mysql数据库
Java中连接Mysql数据库的方法: 第一步:导入jar包(mysql连接数据库用的包) 第二步:配置connection 第三步:数据库使用完要进行关流import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;/** * Java 连接数据库 1.导入jar包 *原创 2016-07-02 00:15:37 · 864 阅读 · 0 评论 -
Java学习之三元运算符-if语句
三元运算符package basis.day02;/** * 三元运算符(条件表达式)?表达式1:表达式2;(若为真输出1,若为假输出2) * 其中表达式1和表达式2的数据类型要一致。 * 三元运算符一定程度上可以用if-else语句表示(但是反之不行) * @author LENOVO * */public class TestTer { public static void原创 2016-07-11 19:16:59 · 4801 阅读 · 0 评论 -
递归在编程中的使用
递归:在编程中就是程序自己调用自己。 利用不断的调用自己,可以让一个复杂的问题化为简单的相似问题。 递归不能无限递归,要有条件判断使得递归结束。构成递归的条件: 1.子问题与原问题相似且更为简单 2.不能无限递归需要有个出口小例子:/** 观察递归结构,解决一些特殊问题 本质:方法调用,只不过是方法调用自己 可以利用递归求阶乘*/public cl原创 2016-07-25 00:31:46 · 1201 阅读 · 0 评论 -
面向对象(一)
基本概念总结:1.面向对象和面向过程的区别:面向过程:关注的是功能行为(问题解决,步骤) 面向对象:面向对象时面向过程的升级,将功能行为进行进一步的抽象,关注是具备了某种功能的角色,面向过程让程序员从执行者升级为指挥者。2.类和对象类:对一类事物的描述(抽象的,概念上的)或者说是对现实世界事物的抽象定义,也是我们创建对象的模板。 对象:实例(具体的个体)类:具有属性和方法 特征:一类事物的共性原创 2016-07-25 23:08:42 · 919 阅读 · 0 评论 -
面向对象(二)
构造方法总结:构造方法: 特殊方法,它的作用是在对象创建的时候自动执行一些初始化工作。 特征: a.方法名与类名一致 b.没有返回值类型,甚至连void也没有 c.不能被final static synchronized abstract等修饰 d.不可以像普通方法一样随意调用,只能在对象创建时调用一次 e.所原创 2016-07-26 22:42:27 · 879 阅读 · 0 评论 -
数组基础知识
1.数组定义 多个相同类型的数据的组合。 数组的作用:实现对这些数据的统一管理,解决数据的批量存储问题。 (将同种类型的数据进行封装,抽象成一个对象,直接用对象实现对这些数据的统一管理,符合面向对象的思想) 核心:数组就是一个对象,数组中的元素是对象的成员变量。2.数组的使用1)声明和创建**元素类型[] 数组名(本质,数组类型的引用变量) = new 元素原创 2016-07-29 22:30:46 · 1351 阅读 · 0 评论 -
数组玩法(一)
本文主要以一个基本类型的数组为例子,展现数组的常用玩法。第一种玩法: 找数组中的最大,最小值,顺便求和,算个平均数。 1.就找数组中的所有元素的最大,最小,求和算平均数(没有限制) 根据值的形式找最大,最小 方法:直接声明一个max变量,并将下标为0的数组元素的值copy给它,然后遍历,在遍历的时候进行判断,若比它大,修改它的值,否则不修改。 最小,类似 求和,算平原创 2016-07-29 23:42:47 · 965 阅读 · 0 评论 -
数组玩法(二)
本博客主要是以引用型数组为例子,介绍各种玩法。 各种玩法本质和基本数据类型一致,不做详细介绍了。 核心:引用型数组,操作的是引用,而不是对象本身,各种操作都是地址的事。先来一个Student类/** 写一个学生类,属性:int id, String name, int grade, double score 将该类属性进行封装,为外界提供公共的get/set方法 无参构造原创 2016-07-30 00:32:00 · 1178 阅读 · 1 评论 -
Java学习-异或应用
异或应用package basis.day02;/** * 异或的重要用途:转换m,n的值 * @author LENOVO * */public class TestXor { public static void main(String[] args){ /* * 交换m,n的值 */ int m = 12;原创 2016-07-20 23:26:53 · 1818 阅读 · 0 评论 -
static & final
static 静态关键字,可以修饰属性,方法,代码块,内部类1.static修饰的属性称为静态属性(类变量,静态属性),它的存在不需要对象。当你所声明的一个变量可以被所有对象共享时可以声明其为静态的。 2.static修饰的方法称为静态方法(类方法),当你声明的方法与调用者无关时,可以声明其为静态的。 3.static可以修饰代码块,这一块代码块称为静态代码块,它的作用是初始化类,可以利用静态原创 2016-08-04 20:21:50 · 1392 阅读 · 0 评论 -
Java学习-值传递
public class TestTransfer { //定义一个swap方法 public static void swap(int a , int b){ /* 参数列表中的int a 和int b 与主方法中的不同 注意:变量的作用范围 只在其声明语句所在的{}中有效 */ int tmp = a;原创 2016-07-21 21:36:48 · 523 阅读 · 0 评论 -
Java学习-进制
原码,反码,补码 1.数据在计算机中都是以补码形式存储。 2.正数三码合一。 3.负数原码除符号位按位取反得到反码,反码+1得到补码。 进制转换 二进制 (0b开头) 八进制(0开头) 十进制 十六进制(0x开头)十进制,八进制,十六进制,通过使用二进制作为桥梁进行转换。 十进制—>二进制(8421或者除二倒取余)—>八进制(从低位开始,三位为一位进行转换) 十进制—>二进制(8原创 2016-07-20 23:13:33 · 1137 阅读 · 0 评论 -
Java学习中位运算符底层运算过程
以两个int型数据为例子,详细的描述它们之间进行& | ^操作的底层二进制运算过程,并分别对它们进行取反操作。 /** 两个int型数据进行& | ^操作,并对它们进行~ 底层二进制运算过程 取反:取反操作后,若为正数,变为负数,且数值比原来大1 若为负数,变为正数,且数值比原来小1*/public class Bin原创 2016-07-20 00:12:31 · 1684 阅读 · 0 评论 -
Java学习-命令行(常用命令)
打开命令行快捷键:windows + r —>cmd(进入命令行) 进入命令行显示 C:\Users\LENOVO(这是命令行的当前工作目录,这里的路径是绝对路径(以根目录开始的路径,唯一定位)) 命令行在某时刻只能以一个目录为当前工作目录。常用命令: 其中md,rd,del,cd命令后面必须加命令行参数,windows命令行不区分大小写 1.dir 显示当前工作目录下的所有原创 2016-07-18 23:28:08 · 884 阅读 · 0 评论 -
Java学习之break和continue
break,continuepackage basis.day03;/** * break 1.在switch-case中使用,用于跳出switch。 * 2.在循环语句中使用,用于跳出当前循环(结束循环)。 * continue 在循环语句中使用,用于跳出当次循环,进行下次循环。 * continue,break语句之后都不可以写语句,因为他们之后的语句永远不会执行。 *原创 2016-07-14 17:46:00 · 721 阅读 · 0 评论 -
Java学习之switch题集锦
package basis.day02;/** * switch语句改写 * @author LENOVO * */public class HomeWorkSwitch_01 { public static void main(String[] args){ int a = 3; int x = 100;// if(a == 1)//原创 2016-07-11 19:28:36 · 5113 阅读 · 0 评论 -
Java学习之switch……case使用
switch……case 基本语法,简单用法package basis.day02;/** * switch(变量){ * case 变量值: * 执行语句; * break; * case 变量值: * 执行语句; * break; * ………… * default原创 2016-07-11 19:23:59 · 1509 阅读 · 0 评论 -
Java-运算符
赋值运算符package basis.day02;/** * 赋值运算符: = += -= *= /= %= * += -=等等既可以完成运算,又不改变运算对象的数据类型。 * @author LENOVO * */public class TestAss { public static void main(String[] args){ int i = 10; /原创 2016-07-10 14:35:10 · 756 阅读 · 0 评论