Java高级编程1-姜国海

①基本数据类型

char (处理文本数据)
boolean
byte(单字节整形) -128~127
short(双字节)
int4字节)(21亿)
long8字节)64个比特位
float4字节)单精度浮点数
double10300多次幂)双精度浮点数

Eg:

int i=078;错的,0开头的是8进制
int i = 0x078; 对的
int i = 010;对

byte i = 250;超过范围
long x = 1234567890000L;//要加上L

-1 : 1111 1111 右移都是-1,
-1281000 0000 右移一次-64

float f1 = 3.14;//wrong
float f1 = 3.14f;
double d1 = 3.14;
浮点数没有移位运算
float  表示 200.1
ieee 754 编码标准

boolean b = true;//只有两个取值 true false

char 
GB-2312 中国的汉字编码标准
GB-18030 当前标准
七比特 ascii码
汉字 两个字节 65535
unicode java语言在内存中的编码格式 两个字节 60000多个 收录了常用的字符编码
ISO 国际化标准化组织 制定了 unicode编码格式
utf-8编码:一个汉字占用三个字节,word里面的编码 日文也是三个字节
utf-8编码:变长的一种编码

Eg:
char c1='a';
char c2='中';
char c3='\''; 转义'
char c4='\u03c4';四个四位十六进制数表示一种字符的编码
char c5='\u0001'; 大写字符A 前128个字符与ASCII表示一样

java 用unicode处理编码 任何字符都是两个字节


对象类型

类:一组具有相同结构的数据类型
日期对象:
Class Date {
    int year;
    int month;
    int day;
    public static void main(String [] args) {
        Data d1 = new Date();
        Data d2 = new Date();
        Data d3 = new Date();
    }
}
日期数据类型

类是静态的,对象是动态创建的
对象:一切的对象都在堆中
Data d = new Date();

d : 引用 实际等价为C++中的指针,Date类型的引用,指向Date在内存中的位置

Date d = null; //不指向任何

垃圾对象:没有任何引用指向的堆中的对象,虚拟机自动释放
    Eg:
    Data d = new Date();
    Date d = null; 

将数据和数据的操作封装在一起
栈变量:函数执行的时候才生成 作用域 函数内

java 支持递归

java 取消了&取地址运算

函数传值的时候传递的是对象的时候传递的时候,是直接将引用赋值,将地址交给形参
已标记关键词 清除标记
相关推荐
第二次作业: 1. 编写点类(Point类),属性成员有x,y,都是double数据类型。需要为Point类编写构造函数。 编写直线类(Line类),需要提供两点确定一条直线的函数功能。 如果两点重合,可以返回异常或者返回null引用来解决这个问题。 直线类的数据成员和函数成员请自行设计。 2. 给定文本文件,文件名称为a.txt,文件内容为一个8行8列的字符矩阵,内容为1和0字符, 请编程计算出该矩阵中水平方向或者垂直方向或者斜线方向连续1最多的个数。 例如: 11001101 10110101 01010101 11001000 01010101 11001101 00011000 11110000 3. 编写程序求出1万以内的所有素数,并将这些素数输出到一个文本文件中,每行文本只包含一个素数数据。 该文本文件内容要求可以用记事本程序来查看。 4. 编写程序求出1万以内的所有素数,然后再判断这些素数中哪些是由素数拼接而成的。 例如素数23就符合条件,23本身是素数,其由素数2,和素数3拼接(连接)组成。 素数29就不满足条件,2是素数,而9不是素数。素数307不满足条件,不能忽略0. 7907这个素数符合条件,7是素数,907是素数。 需要把符合条件的拼接素数全部输出,并统计个数。 5. 要求从控制台输入英语单词及单词解释两项数据, 把录入的数据追加到文件中。要求提供单词查询功能。 用户输入单词后,从单词库文件中查找,如果存在则输出 该单词的解释。注意,单词不能有重复,如果重复则覆盖替换 以前的解释数据。 6. 通过命令行参数输入一个文件夹的路径名称,然后编写程序找出该文件夹下文件名称重复并且文件大小也一样的文件, 如果没有“重复文件”,则输出“没有重复文件”的提示,如果有,需要输出文件名称,和文件所在的文件夹路径(绝对路径)。 提示,需要遍历该文件夹下所有子文件夹,设计一个文件类,属性包括文件名称,文件路径,文件大小,然后进行“重复” 判断,如果文件重复,则需要记录并输出,有可能有文件名重复,但是文件大小不一样,重复的文件可能不止2个,可能 在不同的子文件夹下有多个文件重复。 7. 霍夫曼编码实现压缩文本文件,见文件huffman.rar. 对文件数据读写等功能已经实现,程序在Q2Resources.zip中。 Q2Resources.zip中的文件禁止修改。请将TextZip.java文件所有未实现的函数按照要求给以实现。 改成了控制台输入,因为命令行输入太麻烦了,不过像用命令行也就是改一改就好。
第二次作业: 1. 编写点类(Point类),属性成员有x,y,都是double数据类型。需要为Point类编写构造函数。 编写直线类(Line类),需要提供两点确定一条直线的函数功能。 如果两点重合,可以返回异常或者返回null引用来解决这个问题。 直线类的数据成员和函数成员请自行设计。 2. 给定文本文件,文件名称为a.txt,文件内容为一个8行8列的字符矩阵,内容为1和0字符, 请编程计算出该矩阵中水平方向或者垂直方向或者斜线方向连续1最多的个数。 例如: 11001101 10110101 01010101 11001000 01010101 11001101 00011000 11110000 3. 编写程序求出1万以内的所有素数,并将这些素数输出到一个文本文件中,每行文本只包含一个素数数据。 该文本文件内容要求可以用记事本程序来查看。 4. 编写程序求出1万以内的所有素数,然后再判断这些素数中哪些是由素数拼接而成的。 例如素数23就符合条件,23本身是素数,其由素数2,和素数3拼接(连接)组成。 素数29就不满足条件,2是素数,而9不是素数。素数307不满足条件,不能忽略0. 7907这个素数符合条件,7是素数,907是素数。 需要把符合条件的拼接素数全部输出,并统计个数。 5. 要求从控制台输入英语单词及单词解释两项数据, 把录入的数据追加到文件中。要求提供单词查询功能。 用户输入单词后,从单词库文件中查找,如果存在则输出 该单词的解释。注意,单词不能有重复,如果重复则覆盖替换 以前的解释数据。 6. 通过命令行参数输入一个文件夹的路径名称,然后编写程序找出该文件夹下文件名称重复并且文件大小也一样的文件, 如果没有“重复文件”,则输出“没有重复文件”的提示,如果有,需要输出文件名称,和文件所在的文件夹路径(绝对路径)。 提示,需要遍历该文件夹下所有子文件夹,设计一个文件类,属性包括文件名称,文件路径,文件大小,然后进行“重复” 判断,如果文件重复,则需要记录并输出,有可能有文件名重复,但是文件大小不一样,重复的文件可能不止2个,可能 在不同的子文件夹下有多个文件重复。 7. 霍夫曼编码实现压缩文本文件,见文件huffman.rar. 对文件数据读写等功能已经实现,程序在Q2Resources.zip中。 Q2Resources.zip中的文件禁止修改。请将TextZip.java文件所有未实现的函数按照要求给以实现。 改成了控制台输入,因为命令行输入太麻烦了,不过像用命令行也就是改一改就好。 完善了一下霍夫曼树在写入和读取记事本频率文件时对\r\n无法正确读取问题。其实就是写频率文件的时候将字符'\r'、'\n'替换成字符串"\\r"、"\\n"写入,对于读取频率生成树时候特判一下将字符串"\\r"、"\\n"转换为'\r'、'\n'就好。两天前死活想不到怎么解决,今天突然想到的方法。
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页