进制的特点 进制的由来 任何数据在计算机中都是以二进制的形式存在.二进制最早由电信号演变而来. 一个整数在内存中一样也是二进制,但是使用一大串的0 1组成的二进制数进行使用很麻烦所以就想把一大串缩短点. 将二进制中的三位用一位表示.这三位可以渠道最大值是7,超过7就进位,这就是八进制 但是用过长的二进制变成八进制后还是较长,所以出现用4个二进制表示一位的情况 四个 二级制位 最大是15,这就死hi十六进制 规律:进制越高,表现形式就越短…
进制的相互转换 二进制转十进制: 原理对十进制数进行除2运算(余数不是0 就是1) 6 的二进制: 6 / 2 = 3--0 3 / 2 = 1--1 1 / 2 = 0--1 余数倒序排列输出:110 二进制转十进制 原理:二进制乘以2的过程 以 110 为例: 0 * 2^0 + 1 * 2^1 + 1 * 2^2 0 + 2 + 4 = 6 二进制位数 对应的 十进制数 0    0    1    1       0       1       0       1 128  64   …
进制转换之负数二进制 负数的二进制表现形式 6 = 110 -6 : 其实就是 6 的二进制取反再 + 1 一个整数在内存中是占 4 个字节 **取反:将二进制里的 1 变成 0,0 变成 1. 以6的二进制 110举例 : 0000-0000 0000-0000 0000-0000 0000-0110 变成 : 1111-1111 1111-1111 1111-1111 1111-1001:取反 0000-0000 0000-0000 0000-0000 0000-0001:加 1 -----…
三元运算符:三个元素参与运算的符号 [三元运算符:简略版的 if(){} else() {}语句] class Text { public static void main(String[] args) { int num = 60; int n1 = num & 15; System.out.println((char) (n1 - 10 + 'A')); //要获取下一组四位,将 60 右移 4 位 int temp = 60 >> 4; //对temp的值进行最低4位的获取 in…
位运算符 左移和右移 左移 左移越移越大. 往左移几位就相当于这个数乘于2的几次方 3 << 2 --> 3 * 2^2 = 3 * 4 = 12 3 << 3 --> 3 * 2^3 = 3 * 8 = 24 右移 右移越移越小 往右移几位就相当于这个数除于2的几次方 6 >> 1 --> 6 / 2^1 = 6 / 2 = 3 > > 右移最高位是由最高位值而定,最高为是0就补0,是1就补1 比如 -6 的二进制是 ​ 1111-111…
java语言组成部分 Java是一种强类型语言,所谓强类型语言就是对具体的数据进行不同的定义.对类型的划分的十分细致,对内存中分配了不同大小的内u你空间 关键字 标识符 注释 变量和常量 运算符 语句 函数 数组 关键字 关键字的定义和特点 定义:被Java语言赋予特殊含义的单词 特点:关键字中所有字母为小写 用于定义数据类型的关键字 class. interface. byte. short. int. long.float. double. char. boolean. .true. fal…
if 语句(单条语句) 格式(三种) [注意]:如果 if 控制的语句只有一条,则 这个 { } 括号可以不写 if (条件表达式) { 执行语句; } class Test{ public static void main(String[] args) { int x =3; if(>2) //条件表达式为true,if控制的({}内的)语句被执行 { System.out.println("Yes!"); } System.out.println("over&quo…
位运算(练习) 最有效率的方式算出 2乘以 8等于几 2 << 3 = 2 * 2^3 = 2 * 8 = 16 对于两个整数变量的值进行互换(不需要第三方变量) class Test { public static void main(String[] args) { int n = 3, m = 4; System.out.println("n = "+n+ ", m = "+m); //1.通过定义第三方变量来实现 int temp; temp =…
逻辑运算符 逻辑运算符用于连接 boolean 型的表达式 & : 只要两边都是 boolean 表达结果,有一个为 false ,则结果就是 false 只要两边都为 true 则结果就为 true | : 两边只要有一个为true 结果就为 true ,两边都是false,结果就是false ^ : 异或:就是和 | 有点不一样.当 true ^ true = false; true ^ true = false; true ^ false = true; false ^ true = tr…
赋值 class Test{ public static void main(String[] args) { int i = 3; // += -= *= /= %= 它们凑一块成为一个运算符 x += 4; //相当于 x = x + 4; //这个也是赋值.区别在于这个是把左右两边的和赋给左边 //n年前的一道面试题 /*s = s + 5; 报错. s+5后是的s会被提升为int型 加完后还是一个int型的值, int型的值不能赋给 short型的变量.会丢失精度 这个是两次运算,1.…
转义字符 转义字符 通过 \ 来转变后面的字母或符号的含义 \n :换行 \b :退格.相当于 backspace \r : 相当于回车键. Windows系统中,回车是由两个字符来表示 \r \n. Windows系统中,回车是由两个字符来表示 \r \n. linux系统中,回车是由一个字符来表示 \r \t : 制表符.相当于tab键. class Test{ public static void main(String[] args) { //转义字符 \" \" ,输出带双引…
算术运算符小点 ​ 取模 class Test{ public static void main(String[] args){ System.out.println( 1 % -5); System.out.println( -1 % 5); //Java取模时如果遇到负数只看被模数也就是最左边的那个数 } } /* 输出打印结果: 1 -1 */ 自增自减 class Test{ public static void main(String[] args){ int a = 3, b; //…
变量 变量 就是将不确定的数据进行存储.也就是需要在内存中开辟一块空间. 内存就是一块运算区域.内存越大.内存中装的数位就越多.运算就越快 ==================================================================== 开辟空间就是通过 明确的数据类型 变量名称 数据 来完成的 ==================================================================== [注意]:同一区间里不能…
类型转换 class Test{ public static void main(String[] args) { byte b = 3; // b = b + 2; /* Test.java:5: 错误: 不兼容的类型: 从int转换到byte可能会有损失 b = b + 2; ^ 1 个错误 错误: 编译失败 [这是Java是强类型语言导致的] */ /* 错误地方: byte b = 3; b = b + 2; 错误原因: 2 是整数,默认是int型占4个字节.32位.不同数据类型之间不可…
常量 常量表示不能被改变的数值. Java常量的分类 整型常量.所有整数 小数常量.所有小数 布尔型常量.特殊只有两个值:true.false. 字符常量.将一个数字字母或者符号用单引号(' ')标识 字符串常量.将一个或多个字符用双引("")号标识 null常量.只有一个数值,就是null 对于整数,Java有四种表现形式 二进制:0-1,满二进一 十进制:0-9,满十进一 八进制0-7,满八进一.用0表示(是零不是大写的o) 十六进制 0-9.A-F,满十六进一.用0x或0X表示…
switch(练习) /* if和 switch 语句很像. 具体什么场景下使用什么语句呢? 如果判断的具体数值不多且符合byte.short.int.char.String类型,虽然两个语句都可以使用建议使用switch语句,因为效率稍高 其他情况:对于区间判断对结果为Boolean类型判断使用if,if使用范围更广 */ /* 练习2 :根据用于指定月份,打印该月份所属的季节. 3,4,5 春季 6.7.8 夏季 9.10.11 秋季 12.1, 2 冬季 */ class Test { p…
14天-01-集合框架集合类出现:面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式.数组与集合类同是容器,有何不同? 数组长度是固定的,集合长度是可变的:数组中只可以存储基本数据类型,集合可以存储对象. 迭代器其实就是集合的取出元素的方式,用于循环遍历. 集合迭代器Iterator:在集合中,把取出方式定义在集合的内部,这样取出方式就可以直接访问集合内部的元素.那么取出方式就被定义成了内部类.而每一个容器的数据结构不同,所…
22天-01-GUIGUI:Graphical User Interface 图形用户接口 Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中CLI:Common line User Interface 命令行用户接口 Awt:Abstract Window ToolKit(抽象工具包),需要调用本地系统方法实现功能,属于重量级控件.Swing:在Awt的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现,增强了移植性,属于轻量级控件. 继…
18天-06-IO流 字节流和字符流 字节流两个基类:InputStream,FileInputStream,BufferedInputStream OutputStream,FileOutputStream,BufferedOutputStreamPrintStream (打印字节流,带编码格式) 字符流两个基类:Reader,FileReader,BufferedReader,InputStreamReader(字节流转换为字符流读取,带编码格式)Writer,FileWriter,Buff…
11天-01-多线程进程:是一个正在执行中的程序.每个进程执行都有一个执行顺序.该顺序是一个执行路径或者叫一个控制单元.线程:是进程中的一个独立的控制单元,线程在控制着进程的执行.一个进程至少有一个线程.Java VM 启动的时候会有一个进程(java.exe).该进程中至少有一个线程负责java程序的执行,称该线程为主线程.扩展:其实更细节说明jvm,jvm在启动时不止启动了一个线程,还有负责垃圾回收机制的线程等. 自定义线程1.通过api查找,java已经提供了对线程这类事物的描述,就是Th…
06天-05-面向对象(帮助文档的制作javadoc):java文档生成命令:javadoc -d filepatn demo.java   -author -version(可选)一个类中默认会有一个空参数的构造函数,这个默认的构造函数的权限和所属类一致默认构造函数的权限是随着的类的变化而变化的. 06天-06-面向对象(静态代码块):静态代码块的特点:随着类的加载而加载,只执行一次,用于给类的初始化.非静态代码块的特点:随着类的实例建立而分配内存空间初始化.构造代码块的特点:随着类的实例而初…
Java反射机制: 是在运行状态中,对于任意一个类(class)文件,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性.这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制. 反射机制中的类:java.lang.Class; java.lang.reflect.Constructor; java.lang.reflect.Field; java.lang.reflect.Method;java.lang.reflect.Modifier;…
13天-01-String String类适用于描述字符串事物. 常见的操作:1.获取: 1.1字符串中包含的字符数,也就是字符串的长度. int length():获取长度 1.2根据索引值获取位置上某个字符. char charAt(int index); 1.3根据字符获取该字符在字符串中的位置 int indexOf(int ch);返回的是ch在字符串中第一次出现的位置. int indexOf(int ch,int fromIndex);从fromIndex指定位置开始,获取ch在字…
第20天-07-IO流(递归) package bxd; import java.io.File; public class FileDemo3 { // 非递归打印 public static void showDir_1(File dir) { File[] files = dir.listFiles(); for (File file : files) { System.out.println(file); } } // 递归打印 public static void showDir_2(…
第20天-11-IO流(Properties简述) .properties是一种主要在Java相关技术中用来存储应用程序的可配置参数的文件的文件扩展名.它们也可以存储用于国际化和本地化的字符串,这种文件被称为属性资源包(Property Resource Bundles). 第20天-12-IO流(Properties存取) package bxd; import java.io.IOException; import java.util.Properties; import java.util…
第20天-01-IO流(File概述) File类: 用来将文件或者文件夹封装成对象, 方便进行操作. File对象可以作为参数, 传递给流对象的构造函数. 流对象不能操作文件夹; 流对象不能操作文件的属性信息(rwx等), 只能操作文件的数据. 构造方法: File(File parent, String child) Creates a new File instance from a parent abstract pathname and a child pathname string.…
第19天-06-IO流(装饰设计模式) 装饰设计模式: 当想要对已有的对象进行功能增强时, 可以定义类,将已有对象传入,基于已有的功能,并提供加强功能.那么这个自定义的类称为装饰类. 装饰类通常会通过构造方法接收被装饰的对象. 并基于被装饰的对象的功能,提供更强的功能. 第19天-07-IO流(装饰和继承的区别) MyReader //专门用于读取数据的类 |----MyTextReader |----MyMediaReader |----MyDataReader |____MyBufferRe…
第19天-11-IO流(字节流File读写操作) import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /* 字符流 Reader/Writer FileReader/FileWriter BufferedReader/BufferedWriter 字节流: InputStream/OutputStream FileInputStream/FileOutputStr…
第21天-01-IO流(对象的序列化) ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable接口(标记接口) 非必须, 但强烈建议所有可序列化类都显式声明serialVersionUID package bxd; import java.io.*; public class ObjectStreamDemo { public static void readObj() throws Exception { ObjectInputS…
第20天-15-IO流(打印输出流) 打印输出流:PrintWriter与PrintStream 两者的区别:Since JDK 1.4 it's possible to specify the character encoding for a PrintStream. Thus, the differences between PrintStream and PrintWriter are only about auto flushing behavior and that a PrintSt…