Java的基本数据类型分为两大类:原始数据类型和引用数据类型。其中,原始数据类型是Java内置的类型,包括整数、浮点数、字符和布尔值等八种基本类型;而引用数据类型则是程序员根据需要创建的数据类型。以下是Java的八种基本(原始)数据类型及其特点:
byte:8位的有符号二进制整数,范围从-128到127。主要用于处理文件和网络传输等字节级别的数据。
short:16位的有符号二进制整数,范围从-32,768到32,767。通常用于节省内存空间的需求场景。
int:32位的有符号二进制整数,是最常用的整数类型,范围从-231 (-2,147,483,648) 到 231 - 1 (2,147,483,647)。
long:64位的有符号二进制整数适用于需要大数值计算的场合,范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807。
float:32位的单精度浮点数,可表示小数点前后一定范围的数字,常用于科学计算和需要高精度的计算场景。
double:64位的双精度浮点数,比float更精确,也是使用最广泛的浮点数类型。
char:16位的Unicode字符,可以表示任何单个字符,如字母、数字和特殊符号等。
boolean:只有两个取值true或false,常用于条件判断和逻辑运算。
此外,需要注意的是,在Java中进行算术运算时,默认的数据类型是int,而且byte和short类型的变量在进行运算时会被自动提升为int类型进行处理。同时,整型数以二进制补码的形式存在,并且具有特定的取值范围和默认值设置。对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。如:
基本类型byte 二进制位数:Byte.SIZE最小值:Byte.MIN_VALUE最大值:Byte.MAX_VALUE
基本类型short二进制位数:Short.SIZE最小值:Short.MIN_VALUE最大值:Short.MAX_VALUE
基本类型char二进制位数:Character.SIZE最小值:Character.MIN_VALUE最大值:Character.MAX_VALUE
基本类型double 二进制位数:Double.SIZE最小值:Double.MIN_VALUE最大值:Double.MAX_VALUE
注意:float、double两种类型的最小值与Float.MIN_VALUE、 Double.MIN_VALUE的值并不相同,实际上Float.MIN_VALUE和Double.MIN_VALUE分别指的是 float和double类型所能表示的最小正数。也就是说存在这样一种情况,0到±Float.MIN_VALUE之间的值float类型无法表示,0 到±Double.MIN_VALUE之间的值double类型无法表示。因为这些范围内的数值超出了它们的精度范围。
Java基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从Java5.0(1.5)开始,JAVA虚拟机(JavaVirtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候像使用基本类型一样使用它们的包装类。另外,所有基本类型(包括void)的包装类都使用了final修饰
基本类型的优势:数据存储相对简单,运算效率比较高;
包装类的优势:有的容易,比如集合的元素必须是对象类型,满足了java一切皆是对象的思想。
Java中的常量:
十六进制整型常量:以十六进制表示时,需以0x或0X开头,如0xff,0X9A。
八进制整型常量:八进制必须以0开头,如0123,034。
长整型:长整型必须以L作结尾,如9L,342L。
浮点数常量:由于小数常量的默认类型是double型,所以float类型的后面一定要加f(F)。同样带小数的变量默认为double类型。
如图一:
字符常量:字符型常量需用两个单引号括起来(注意字符串常量是用两个双引号括起来)。Java中的字符占两个字节。一些常用的转义字符:
①\r表示接受键盘输入,相当于按下了回车键;
②\n表示换行;
③\t表示制表符,相当于Table键;
④\b表示退格键,相当于Back Space键;
⑤\'表示单引号;
⑥\''表示双引号;
⑦\\表示一个斜杠\。
数据类型之间的转换:
简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时。
自动转换:
具体地讲,当一个较"小"数据与一个较"大"的数据一起运算时,系统将自动将"小"数据转换成"大"数据,再进行运算。而在方法调用时,实际参数较"小",而被调用的方法的形式参数数据又较"大"时(若有匹配的,当然会直接调用匹配的方法),系统也将自动将"小"数据转换成"大"数据,再进行方法的调用,自然,对于多个同名的重载方法,会转换成最"接近"的"大"数据并进行调用。这些类型由"小"到"大"分别为 (byte,short,char)--int--long--float—double。这里我们所说的"大"与"小",并不是指占用字节的多少,而是指表示值的范围的大小。
①下面的语句可以在Java中直接通过:如图二
②如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如:如图三
③对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。如图四
强制转换:
将"大"数据转换为"小"数据时,你可以使用强制类型转换。即你必须采用下面这种语句格式:int n=(int)3.14159/2;可以想象,这种转换肯定可能会导致溢出或精度的下降。
表达式的数据类型自动提升,关于类型的自动提升,注意下面的规则。
①所有的byte,short,char型的值将被提升为int型;
②如果有一个操作数是long型,计算结果是long型;
③如果有一个操作数是float型,计算结果是float型;
④如果有一个操作数是double型,计算结果是double型;
例,byte b; b=3; b=(byte)(b*3);//必须声明byte。
字符串与其它类型间的转换:
其它类型向字符串的转换:
①调用类的串转换方法:X.toString();
②自动转换:X+"";
③使用String的方法:String.volueOf(X);
字符串作为值,向其它类型的转换:
①先转换成相应的封装器实例,再调用对应的方法转换成其它类型
例如,字符中"32.1"转换double型的值的格式为:new Float("32.1").doubleValue()。也可以用:Double.valueOf("32.1").doubleValue()
②静态parseXXX方法
如图五
③Character的getNumericValue(char ch)方法
Date类与其它数据类型的相互转换:
整型和Date类之间并不存在直接的对应关系,只是你可以使用int型为分别表示年、月、日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date类构造函数的三种形式:
①Date(int year, int month, int date):以int型表示年、月、日
②Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、时、分
③Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、时、分、秒
在长整型和Date类之间有一个很有趣的对应关系,就是将一个时间表示为距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数。对于这种对应关系,Date类也有其相应的构造函数:Date(long date)。获取Date类中的年、月、日、时、分、秒以及星期你可以使用Date类的getYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以将其理解为将Date类转换成int。而Date类的getTime()方法可以得到我们前面所说的一个时间对应的长整型数,Date类也有一个toString()方法可以将其转换为String类。
总结:只有boolean不参与数据类型的转换
强制类型转换:用圆括号括起来目标类型,置于变量前
Java引用类型:
Java有5种引用类型(对象类型):类 接口 数组 枚举 标注
引用类型:底层结构和基本类型差别较大
JVM的内存空间:
Heap堆空间:分配对象new Student()
Stack栈空间:临时变量Student stu
Code代码区 :类的定义,静态资源Student.class
eg:Student stu = new Student();//new在内存的堆空间创建对象
stu.study(); //把对象的地址赋给stu引用变量
运算符:
运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。
算术
单目:~(按位取反)、! (取非)、-(负号运算符)、++(自增)、- -(自减)、
双目:+ - * / %(取余)
三目:a>b?true:false说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
关系
等于符号:==,不等于符号:!=,大于符号:>, 小于符号:<,大于等于符号:>=,小于等于符号:<=。
位与逻辑:
位运算符 与(&)、非(~)、或(|)、异或(^)
&:双目运算符,运算时均把运算数转换为二进制再做比较,规则:当相同的位上均为1时结果为1,否则结 果为0.如:1010&1101,转为二进制:1111110010&10001001101,比较结果为:1000000转为十进制:64。所以1010&1101=64;
|:当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
~:0变1,1变0
^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
赋值
= += -= *= /= %= &= ^= |= <<=>>=
运算符综述
运算符的优先级决定了表达式中运算执行的先后顺序.例如,x位移:
<<带符号左移 >>带符号右移 >>> 无符号右移
运算符优先级:
按优先级从高到低排列如下:[ ] ( ) ++ -- !~instanceof * / % + - <<>> >>><>< =>\ == != &^& & || ? := op=
程序控制:
三大程序流程控制结构:
1)顺序结构:程序从上到下逐行逐行的执行,中间没有任何的判断和跳转
2)分支结构:程序具有选择性的进入某一段代码
3)循环结构:程序重复的执行某一段代码
分支语句:
单分支形式:if (条件表达式) { 代码块; }
解释:条件表达式为true,则执行if语句里面的代码块,若是条件表达式为false,就跳过if语句,执行if (){ }后面的语句
双分支形式:if (条件表达式) { 代码块; } else { 代码块; }
解释:如果if的条件表达式为true,则执行if中的代码块,如果if的条件表达式为false,则执行else中的代码块
多分支形式:if (条件表达式) { 代码块; } else if (条件表达式) else if (条件表达式) …… else { 代码块; }
解释:那个的条件表达式为true,则执行那个分支的语句块,如果都为false,则执行else中的语句块
分支嵌套:
在if语句里面含有if语句,再在if语句里面有if语句,……;在else语句里面含有if语句……(注意:最后不要嵌套超过3层,可读性不好)分支语句详解
switch分支结构:
switch中的表达式类型应和case后面的常量类型一致,或者是可以自动转换成可以相互比较的类型;switch(表达式)中的值类型必须是:byte、short、int、char、enum、String类型;case 紧跟的值必须是常量,不能是变量或浮点类型;default语句可省略,在所有的case语句都没有匹配成功的情况下,执行default语句;break语句用来执行完一个case分支后跳出switch语句块,如果没有写break语句,程序会顺序执行到switch的结尾或执行到有break的case分支语句
switch和if的比较 :
1)配对比较,而且符合byte、short、int、char、enum、String6种类型,建议使用switch语句
2)区间判断,结果是boolean类型的数据,使用if分支语句
循环结构 :
循环四要素:
1)循环语句
2)循环体
3)循环判断
4)循环变量迭代
while、do-while循环和for循环三种循环的区别:
1)do-while循环先使用后执行
2)三种循环都有循环四要素
3)三种循环都需要使用条件判断
4)循环表达式判断的结果都是boolean型
数组的定义及基本要素:
数组的定义:
定义:数组是一个变量,是存储相同数据类型的一组数据序列
在内存中:声明一个数组变量就是在内存空间划出一串连续的空间
数组的基本要素:
标识符:数组的名称,用于区分不同的数组
数组元素:数组中存放的每个数据
元素类型:数组元素的数据类型
元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问
注意事项:
一个数组只能存放一种类型的数据,这种数据类型在一开始就被规定好了
一个数组在初始化后的长度是固定的,最大的下角标是长度-1,超过这个范围则会报错
动态初始化的初始赋值依据不同数据类型而不同,int-->0 ,double-->0.0,String-->null , boolean -->false,char-->’’
byte:8位的有符号二进制整数,范围从-128到127。主要用于处理文件和网络传输等字节级别的数据。
short:16位的有符号二进制整数,范围从-32,768到32,767。通常用于节省内存空间的需求场景。
int:32位的有符号二进制整数,是最常用的整数类型,范围从-231 (-2,147,483,648) 到 231 - 1 (2,147,483,647)。
long:64位的有符号二进制整数适用于需要大数值计算的场合,范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807。
float:32位的单精度浮点数,可表示小数点前后一定范围的数字,常用于科学计算和需要高精度的计算场景。
double:64位的双精度浮点数,比float更精确,也是使用最广泛的浮点数类型。
char:16位的Unicode字符,可以表示任何单个字符,如字母、数字和特殊符号等。
boolean:只有两个取值true或false,常用于条件判断和逻辑运算。
此外,需要注意的是,在Java中进行算术运算时,默认的数据类型是int,而且byte和short类型的变量在进行运算时会被自动提升为int类型进行处理。同时,整型数以二进制补码的形式存在,并且具有特定的取值范围和默认值设置。对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。如:
基本类型byte 二进制位数:Byte.SIZE最小值:Byte.MIN_VALUE最大值:Byte.MAX_VALUE
基本类型short二进制位数:Short.SIZE最小值:Short.MIN_VALUE最大值:Short.MAX_VALUE
基本类型char二进制位数:Character.SIZE最小值:Character.MIN_VALUE最大值:Character.MAX_VALUE
基本类型double 二进制位数:Double.SIZE最小值:Double.MIN_VALUE最大值:Double.MAX_VALUE
注意:float、double两种类型的最小值与Float.MIN_VALUE、 Double.MIN_VALUE的值并不相同,实际上Float.MIN_VALUE和Double.MIN_VALUE分别指的是 float和double类型所能表示的最小正数。也就是说存在这样一种情况,0到±Float.MIN_VALUE之间的值float类型无法表示,0 到±Double.MIN_VALUE之间的值double类型无法表示。因为这些范围内的数值超出了它们的精度范围。
Java基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从Java5.0(1.5)开始,JAVA虚拟机(JavaVirtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候像使用基本类型一样使用它们的包装类。另外,所有基本类型(包括void)的包装类都使用了final修饰
基本类型的优势:数据存储相对简单,运算效率比较高;
包装类的优势:有的容易,比如集合的元素必须是对象类型,满足了java一切皆是对象的思想。
Java中的常量:
十六进制整型常量:以十六进制表示时,需以0x或0X开头,如0xff,0X9A。
八进制整型常量:八进制必须以0开头,如0123,034。
长整型:长整型必须以L作结尾,如9L,342L。
浮点数常量:由于小数常量的默认类型是double型,所以float类型的后面一定要加f(F)。同样带小数的变量默认为double类型。
如图一:
字符常量:字符型常量需用两个单引号括起来(注意字符串常量是用两个双引号括起来)。Java中的字符占两个字节。一些常用的转义字符:
①\r表示接受键盘输入,相当于按下了回车键;
②\n表示换行;
③\t表示制表符,相当于Table键;
④\b表示退格键,相当于Back Space键;
⑤\'表示单引号;
⑥\''表示双引号;
⑦\\表示一个斜杠\。
数据类型之间的转换:
简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时。
自动转换:
具体地讲,当一个较"小"数据与一个较"大"的数据一起运算时,系统将自动将"小"数据转换成"大"数据,再进行运算。而在方法调用时,实际参数较"小",而被调用的方法的形式参数数据又较"大"时(若有匹配的,当然会直接调用匹配的方法),系统也将自动将"小"数据转换成"大"数据,再进行方法的调用,自然,对于多个同名的重载方法,会转换成最"接近"的"大"数据并进行调用。这些类型由"小"到"大"分别为 (byte,short,char)--int--long--float—double。这里我们所说的"大"与"小",并不是指占用字节的多少,而是指表示值的范围的大小。
①下面的语句可以在Java中直接通过:如图二
②如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如:如图三
③对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。如图四
强制转换:
将"大"数据转换为"小"数据时,你可以使用强制类型转换。即你必须采用下面这种语句格式:int n=(int)3.14159/2;可以想象,这种转换肯定可能会导致溢出或精度的下降。
表达式的数据类型自动提升,关于类型的自动提升,注意下面的规则。
①所有的byte,short,char型的值将被提升为int型;
②如果有一个操作数是long型,计算结果是long型;
③如果有一个操作数是float型,计算结果是float型;
④如果有一个操作数是double型,计算结果是double型;
例,byte b; b=3; b=(byte)(b*3);//必须声明byte。
字符串与其它类型间的转换:
其它类型向字符串的转换:
①调用类的串转换方法:X.toString();
②自动转换:X+"";
③使用String的方法:String.volueOf(X);
字符串作为值,向其它类型的转换:
①先转换成相应的封装器实例,再调用对应的方法转换成其它类型
例如,字符中"32.1"转换double型的值的格式为:new Float("32.1").doubleValue()。也可以用:Double.valueOf("32.1").doubleValue()
②静态parseXXX方法
如图五
③Character的getNumericValue(char ch)方法
Date类与其它数据类型的相互转换:
整型和Date类之间并不存在直接的对应关系,只是你可以使用int型为分别表示年、月、日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date类构造函数的三种形式:
①Date(int year, int month, int date):以int型表示年、月、日
②Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、时、分
③Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、时、分、秒
在长整型和Date类之间有一个很有趣的对应关系,就是将一个时间表示为距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数。对于这种对应关系,Date类也有其相应的构造函数:Date(long date)。获取Date类中的年、月、日、时、分、秒以及星期你可以使用Date类的getYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以将其理解为将Date类转换成int。而Date类的getTime()方法可以得到我们前面所说的一个时间对应的长整型数,Date类也有一个toString()方法可以将其转换为String类。
总结:只有boolean不参与数据类型的转换
强制类型转换:用圆括号括起来目标类型,置于变量前
Java引用类型:
Java有5种引用类型(对象类型):类 接口 数组 枚举 标注
引用类型:底层结构和基本类型差别较大
JVM的内存空间:
Heap堆空间:分配对象new Student()
Stack栈空间:临时变量Student stu
Code代码区 :类的定义,静态资源Student.class
eg:Student stu = new Student();//new在内存的堆空间创建对象
stu.study(); //把对象的地址赋给stu引用变量
运算符:
运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。
算术
单目:~(按位取反)、! (取非)、-(负号运算符)、++(自增)、- -(自减)、
双目:+ - * / %(取余)
三目:a>b?true:false说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
关系
等于符号:==,不等于符号:!=,大于符号:>, 小于符号:<,大于等于符号:>=,小于等于符号:<=。
位与逻辑:
位运算符 与(&)、非(~)、或(|)、异或(^)
&:双目运算符,运算时均把运算数转换为二进制再做比较,规则:当相同的位上均为1时结果为1,否则结 果为0.如:1010&1101,转为二进制:1111110010&10001001101,比较结果为:1000000转为十进制:64。所以1010&1101=64;
|:当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
~:0变1,1变0
^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
赋值
= += -= *= /= %= &= ^= |= <<=>>=
运算符综述
运算符的优先级决定了表达式中运算执行的先后顺序.例如,x
<<带符号左移 >>带符号右移 >>> 无符号右移
运算符优先级:
按优先级从高到低排列如下:[ ] ( ) ++ -- !~instanceof * / % + - <<>> >>><>< =>\ == != &^& & || ? := op=
程序控制:
三大程序流程控制结构:
1)顺序结构:程序从上到下逐行逐行的执行,中间没有任何的判断和跳转
2)分支结构:程序具有选择性的进入某一段代码
3)循环结构:程序重复的执行某一段代码
分支语句:
单分支形式:if (条件表达式) { 代码块; }
解释:条件表达式为true,则执行if语句里面的代码块,若是条件表达式为false,就跳过if语句,执行if (){ }后面的语句
双分支形式:if (条件表达式) { 代码块; } else { 代码块; }
解释:如果if的条件表达式为true,则执行if中的代码块,如果if的条件表达式为false,则执行else中的代码块
多分支形式:if (条件表达式) { 代码块; } else if (条件表达式) else if (条件表达式) …… else { 代码块; }
解释:那个的条件表达式为true,则执行那个分支的语句块,如果都为false,则执行else中的语句块
分支嵌套:
在if语句里面含有if语句,再在if语句里面有if语句,……;在else语句里面含有if语句……(注意:最后不要嵌套超过3层,可读性不好)分支语句详解
switch分支结构:
switch中的表达式类型应和case后面的常量类型一致,或者是可以自动转换成可以相互比较的类型;switch(表达式)中的值类型必须是:byte、short、int、char、enum、String类型;case 紧跟的值必须是常量,不能是变量或浮点类型;default语句可省略,在所有的case语句都没有匹配成功的情况下,执行default语句;break语句用来执行完一个case分支后跳出switch语句块,如果没有写break语句,程序会顺序执行到switch的结尾或执行到有break的case分支语句
switch和if的比较 :
1)配对比较,而且符合byte、short、int、char、enum、String6种类型,建议使用switch语句
2)区间判断,结果是boolean类型的数据,使用if分支语句
循环结构 :
循环四要素:
1)循环语句
2)循环体
3)循环判断
4)循环变量迭代
while、do-while循环和for循环三种循环的区别:
1)do-while循环先使用后执行
2)三种循环都有循环四要素
3)三种循环都需要使用条件判断
4)循环表达式判断的结果都是boolean型
数组的定义及基本要素:
数组的定义:
定义:数组是一个变量,是存储相同数据类型的一组数据序列
在内存中:声明一个数组变量就是在内存空间划出一串连续的空间
数组的基本要素:
标识符:数组的名称,用于区分不同的数组
数组元素:数组中存放的每个数据
元素类型:数组元素的数据类型
元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问
注意事项:
一个数组只能存放一种类型的数据,这种数据类型在一开始就被规定好了
一个数组在初始化后的长度是固定的,最大的下角标是长度-1,超过这个范围则会报错
动态初始化的初始赋值依据不同数据类型而不同,int-->0 ,double-->0.0,String-->null , boolean -->false,char-->’’
#每周一读#
这周很摆,没怎么读书,惭愧。
只好借着写读后感的日子重读了一下《如何阅读一本书》第二章。
在整理思维导图时候,意识到自己并没有很好地概括这本书第二章的内容,我强烈推荐有兴趣的人阅读原文。真的是很棒的一本书,工具书,但有着浓厚的哲学意味,不把它当工具书看,你也可以把它当讲述人生哲学的书来看,是非常值得回味的书。
以下是往期这本书的读书笔记。
《如何阅读一本书》带有自己感想的阅读笔记:https://t.cn/A6TVpyuy
《如何阅读一本书》第一章阅读笔记::https://t.cn/A6TVpyuU
[1]阅读的层次
这一章只有这一点呢,没有分其他内容。
书接上回,作者谈到了阅读的目标——为了消遣,获得资讯或增进理解力。
【一位读者要追求的目标——为了消遣,获得资讯或增进理解力——会决定他阅读的方式】
阅读的方式又对阅读的效果有着重要的影响。为了增进阅读技巧,获得自己想要的阅读效果,作者提到,一定要先了解阅读层次的不同。
这本书写的很严谨。甚至对一些词汇,例如,为何使用层次这个词语,而不称为种类都解释了。这里我也就暂且不提了,初次阅读没必要那么咬文嚼字——我还没到能生吞活剥这本书的水平。
【第一层次的阅读,我们称之为基础阅读】
对于基础阅读,书中没有给出明确定义(也可能是我没get)
以自己的语言,简单概括一下就是,基础阅读,是指一个人摆脱了文盲状态,在能识字的情况下,不求甚解地阅读(如果出错了以后再改)
我想一般人阅读母语类书籍还是没问题的,就是在阅读外语类书籍时会遇上这类基础阅读的问题。
【第二个层次的阅读我们称之为检视阅读。特点在强调时间。在这个阅读层次,学生必须在规定的时间内完成一项阅读的功课】
【用另一种方式来形容这个层次的阅读,就是在一定的时间之内,抓住一本书的重点——通常是很短,而且总是(就定义上说)过短,很难掌握一本书的所有重点】
也就是说,你可以在短时间内阅读完一本书或者一篇paper,然后自己回答这些问题:
“这本书讲了什么故事,写了什么主题?”
“这份paper写了哪些算法,模型是如何的,有什么样的效果?”
在这个层次上,作者提到了人们会返的错误——人们很容易忽视检视阅读的价值。该以短时间的阅读汲取信息时,却以精读的精力时间去阅读一本书。
要怎么规避这类问题,我自己的看法是,你得在阅读前先有个目标,知道自己读这篇文是为了什么。有了模糊的目标,你才能把握阅读的时间,不过度沉溺没用的文章。
话是那么说的,但其实我也会在读一些东西的时候浪费时间。可恶,我要狠狠避雷日本的人文社科类工具书,感觉都是噱头大于内容,实际价值榨出来还不如一篇公众号(
【第三种层次的阅读,我们称之为分析阅读。比起前面所说的来你高中阅读,这要更复杂,更系统化。】
【如果说检视阅读是在有限的时间内,最好也最完整的阅读,那么分析阅读就是在无限的时间里,最好也最完整的阅读】
这是我觉得一个人在阅读中获得进取的很重要的一个层次。主动提出问题,阅读书籍,努力回答这些问题,追寻理解,把这本书变成自己的。
作者还举例了弗朗西斯·培根的一句话——“有些书可以浅尝即止,有些书是要生吞活剥,只有少数的书是要咀嚼与消化的。”
用培根的话来说,分析阅读就是要咀嚼与消化一本书。
相当有数学美的一句话,很克制很冷静非常有逻辑,以简单又不失文学性的文字讲述了自己对读书的认知。(写作文的时候引用培根的话会相当加分吧,字数又少文字又酷的)
【第四种,也是最高层次的阅读,我们称之为主题阅读】
主题阅读,也称为比较阅读。我听说文学类专业有一种分类,就是比较文学,不知道跟这类阅读是不是有关系。
这一章作者没细提主题阅读,他说在后文会仔细介绍这类阅读(二十章开始)
主题阅读,用我自己的话来说,大概就是,概括出书中字句相关之处,书与书之间的相关之处。然后融会贯通,掌握一类书的主题,甚至能挖掘出某类书并没有明确提出的,潜藏的主题。
这种感觉……好类似于刷同类数学题啊()一直刷某类型的数学题,然后就会了这一类题……的感觉。
要说主题类阅读,可能我最深的体验还是在阅读反乌托邦系列的书时候吧。不过那不算自己主动阅读,只是囫囵地看了一圈,隐约有点感触。
有时间的话,我会重看那几本对我影响很深的反乌托邦书籍,然后再写个读后感出来。
总之这周的阅读笔记到此结束,一共是谈了四种层次的阅读以及人们会犯的一些错误。加油啊,下周要努力输入呀。
这周很摆,没怎么读书,惭愧。
只好借着写读后感的日子重读了一下《如何阅读一本书》第二章。
在整理思维导图时候,意识到自己并没有很好地概括这本书第二章的内容,我强烈推荐有兴趣的人阅读原文。真的是很棒的一本书,工具书,但有着浓厚的哲学意味,不把它当工具书看,你也可以把它当讲述人生哲学的书来看,是非常值得回味的书。
以下是往期这本书的读书笔记。
《如何阅读一本书》带有自己感想的阅读笔记:https://t.cn/A6TVpyuy
《如何阅读一本书》第一章阅读笔记::https://t.cn/A6TVpyuU
[1]阅读的层次
这一章只有这一点呢,没有分其他内容。
书接上回,作者谈到了阅读的目标——为了消遣,获得资讯或增进理解力。
【一位读者要追求的目标——为了消遣,获得资讯或增进理解力——会决定他阅读的方式】
阅读的方式又对阅读的效果有着重要的影响。为了增进阅读技巧,获得自己想要的阅读效果,作者提到,一定要先了解阅读层次的不同。
这本书写的很严谨。甚至对一些词汇,例如,为何使用层次这个词语,而不称为种类都解释了。这里我也就暂且不提了,初次阅读没必要那么咬文嚼字——我还没到能生吞活剥这本书的水平。
【第一层次的阅读,我们称之为基础阅读】
对于基础阅读,书中没有给出明确定义(也可能是我没get)
以自己的语言,简单概括一下就是,基础阅读,是指一个人摆脱了文盲状态,在能识字的情况下,不求甚解地阅读(如果出错了以后再改)
我想一般人阅读母语类书籍还是没问题的,就是在阅读外语类书籍时会遇上这类基础阅读的问题。
【第二个层次的阅读我们称之为检视阅读。特点在强调时间。在这个阅读层次,学生必须在规定的时间内完成一项阅读的功课】
【用另一种方式来形容这个层次的阅读,就是在一定的时间之内,抓住一本书的重点——通常是很短,而且总是(就定义上说)过短,很难掌握一本书的所有重点】
也就是说,你可以在短时间内阅读完一本书或者一篇paper,然后自己回答这些问题:
“这本书讲了什么故事,写了什么主题?”
“这份paper写了哪些算法,模型是如何的,有什么样的效果?”
在这个层次上,作者提到了人们会返的错误——人们很容易忽视检视阅读的价值。该以短时间的阅读汲取信息时,却以精读的精力时间去阅读一本书。
要怎么规避这类问题,我自己的看法是,你得在阅读前先有个目标,知道自己读这篇文是为了什么。有了模糊的目标,你才能把握阅读的时间,不过度沉溺没用的文章。
话是那么说的,但其实我也会在读一些东西的时候浪费时间。可恶,我要狠狠避雷日本的人文社科类工具书,感觉都是噱头大于内容,实际价值榨出来还不如一篇公众号(
【第三种层次的阅读,我们称之为分析阅读。比起前面所说的来你高中阅读,这要更复杂,更系统化。】
【如果说检视阅读是在有限的时间内,最好也最完整的阅读,那么分析阅读就是在无限的时间里,最好也最完整的阅读】
这是我觉得一个人在阅读中获得进取的很重要的一个层次。主动提出问题,阅读书籍,努力回答这些问题,追寻理解,把这本书变成自己的。
作者还举例了弗朗西斯·培根的一句话——“有些书可以浅尝即止,有些书是要生吞活剥,只有少数的书是要咀嚼与消化的。”
用培根的话来说,分析阅读就是要咀嚼与消化一本书。
相当有数学美的一句话,很克制很冷静非常有逻辑,以简单又不失文学性的文字讲述了自己对读书的认知。(写作文的时候引用培根的话会相当加分吧,字数又少文字又酷的)
【第四种,也是最高层次的阅读,我们称之为主题阅读】
主题阅读,也称为比较阅读。我听说文学类专业有一种分类,就是比较文学,不知道跟这类阅读是不是有关系。
这一章作者没细提主题阅读,他说在后文会仔细介绍这类阅读(二十章开始)
主题阅读,用我自己的话来说,大概就是,概括出书中字句相关之处,书与书之间的相关之处。然后融会贯通,掌握一类书的主题,甚至能挖掘出某类书并没有明确提出的,潜藏的主题。
这种感觉……好类似于刷同类数学题啊()一直刷某类型的数学题,然后就会了这一类题……的感觉。
要说主题类阅读,可能我最深的体验还是在阅读反乌托邦系列的书时候吧。不过那不算自己主动阅读,只是囫囵地看了一圈,隐约有点感触。
有时间的话,我会重看那几本对我影响很深的反乌托邦书籍,然后再写个读后感出来。
总之这周的阅读笔记到此结束,一共是谈了四种层次的阅读以及人们会犯的一些错误。加油啊,下周要努力输入呀。
#光与夜之恋陆沉[超话]#[给你小心心]#陆沉#
【6推萌新必看】请多看剧情,多听陆沉说
最近因为陆沉帅卡,吸引了好多萌新,在此我有以下几点想提前给萌新告知一下,请大家一定知晓:
1️⃣光夜主线和约会卡时间差距是很大的,主线是相爱的过程,而约会更多的展现暧昧和热恋的甜蜜,这就注定主线是包含诸多纠葛的,且主线时长远远大于约会卡,它承载着塑造游戏世界观,包纳多个男主剧情的功能,所以约会卡的剧情往往比主线简单,这也是为什么被约会卡吸引过去的人,看主线会惊讶陆沉怎么这样,请放心,陆沉还是陆沉。
和陆沉相爱我个人倾向于是一个【养成】的过程,他不是传统的金手指霸总,在感情方面他甚至非常依赖你,他因为自身的原因觉得不配爱,也没有获得过爱,但你的出现给了他荒芜26年人生另一个选择,他的世界里不再只有【忍痛放弃】or【因为自己的喜欢导致对方的惨烈】,你是他人生的转角,你带给他爱,他在爱里获得新生,这是你看完主线后能体会到的。
2️⃣萌新在看陆沉帖子的时候请一定注意分辩,发帖的到底是不是6推,如果她都不是6推,我请问她对陆沉的评价有何意义,爱是双向的选择,如果她都不是6推,那么她一定不会知道6推和陆沉这三年来关于这份感情所努力的每一步有多么动人和伟大,既然她什么都不知道,那她的话毫无可信依据。
3️⃣陆沉如果想利用你,那他不会一直保护你,哪怕是矛盾激化的16章,他也是因为被陆霆骗了的原因才让你们两个落入家主的诡计中,这样一个在他们嘴里满是谎言利用的人,靠复仇的意志走到今天的人,他本可以顺势而为,完成自己筹划十多年的谋略,但他仍然奋不顾身选择了你,为了你的安全他不得已和你决裂,考虑的第一件事仍然是再下雨的时候他没有资格再为你撑伞,万甄资金流出了问题但他仍然力排众议支持你的新系列服装,我请问他还要做什么才能达到造谣解口中的【被爱】?
关于那个未婚妻,看完主线就知道陆沉根本没搭理过他们,那边也从头到尾只是把陆沉当工具人,陆沉帮那边肃清东部势力,伤得在英国一动不能动,躺大半个月的时候,靠着自己偷偷做的,以你为原型的ai小机器人才感觉到自己活着,他只是不会说,但没有任何人能否定他的感情。
所以小萌新们~请多看剧情吧,多和真6推讨论,陆沉特别特别好,他非常值得被爱[给你小心心]
【6推萌新必看】请多看剧情,多听陆沉说
最近因为陆沉帅卡,吸引了好多萌新,在此我有以下几点想提前给萌新告知一下,请大家一定知晓:
1️⃣光夜主线和约会卡时间差距是很大的,主线是相爱的过程,而约会更多的展现暧昧和热恋的甜蜜,这就注定主线是包含诸多纠葛的,且主线时长远远大于约会卡,它承载着塑造游戏世界观,包纳多个男主剧情的功能,所以约会卡的剧情往往比主线简单,这也是为什么被约会卡吸引过去的人,看主线会惊讶陆沉怎么这样,请放心,陆沉还是陆沉。
和陆沉相爱我个人倾向于是一个【养成】的过程,他不是传统的金手指霸总,在感情方面他甚至非常依赖你,他因为自身的原因觉得不配爱,也没有获得过爱,但你的出现给了他荒芜26年人生另一个选择,他的世界里不再只有【忍痛放弃】or【因为自己的喜欢导致对方的惨烈】,你是他人生的转角,你带给他爱,他在爱里获得新生,这是你看完主线后能体会到的。
2️⃣萌新在看陆沉帖子的时候请一定注意分辩,发帖的到底是不是6推,如果她都不是6推,我请问她对陆沉的评价有何意义,爱是双向的选择,如果她都不是6推,那么她一定不会知道6推和陆沉这三年来关于这份感情所努力的每一步有多么动人和伟大,既然她什么都不知道,那她的话毫无可信依据。
3️⃣陆沉如果想利用你,那他不会一直保护你,哪怕是矛盾激化的16章,他也是因为被陆霆骗了的原因才让你们两个落入家主的诡计中,这样一个在他们嘴里满是谎言利用的人,靠复仇的意志走到今天的人,他本可以顺势而为,完成自己筹划十多年的谋略,但他仍然奋不顾身选择了你,为了你的安全他不得已和你决裂,考虑的第一件事仍然是再下雨的时候他没有资格再为你撑伞,万甄资金流出了问题但他仍然力排众议支持你的新系列服装,我请问他还要做什么才能达到造谣解口中的【被爱】?
关于那个未婚妻,看完主线就知道陆沉根本没搭理过他们,那边也从头到尾只是把陆沉当工具人,陆沉帮那边肃清东部势力,伤得在英国一动不能动,躺大半个月的时候,靠着自己偷偷做的,以你为原型的ai小机器人才感觉到自己活着,他只是不会说,但没有任何人能否定他的感情。
所以小萌新们~请多看剧情吧,多和真6推讨论,陆沉特别特别好,他非常值得被爱[给你小心心]
✋热门推荐