学习日记[16]

閱讀時間約 17 分鐘

现在补的是昨天的内容。

1.《java高级编程》:主要是两个方面,一个是跳转语句,另一个是初始化和清理工作。先来讲跳转语句,它主要是用在循环内部的跳出循环的语句。分为四类,return,break,continue和标签语句。return语句有两个作用,给方法一个返回值与结束该方法。这两层含义说明它大多数时间是用在方法内部的。break语句的功能是跳出整个循环语句,而不是循环语句中的一次循环,这是continue的作用。直观一点讲就是,break语句之后将不再进行该循环,而continue还是需要继续进行该循环的。标签语句是从goto演变而来,它限制了goto语句的适用范围和内部逻辑。goto是再编译层面之后进行跳转,而标签语句是在编译层面进行时进行跳转,这样就减少了许多不必要的bug。

然后就是初始化和清理,文章讲的很详细,这里就不复制粘贴,就按照我的想法进行操作了。我把这一章节分为 个部分,分别是初始化和清理的必要性,构造器是什么,构造器和初始化的关系,如何进行清理,初始化的顺序及特殊的初始化。

  • 初始化和清理的必要性,这个书上讲的比我个人理解的详细多了,这里就抄录几段话:“这个元素占用的资源就会一直得不到释放,结果是资源用尽”“特别是在使用程序库时,如果用户不知道如何初始化库的构件,更是如此”
  • 构造器时在创建对象时自动调用的特殊的方法,但不无需特别定义,可以理解为每一个类自带的特殊方法。构造器的标识符和类的标识符,用来唯一识别这个类的方法,同时他也没有返回值。注意这里是没有返回值而不是返回值为空。构造器里可以进行相关的初始化操作,也可以不进行任何初始化,系统会帮助我们将每一个属性都进行赋予初始值。一般这种构造器称为默认构造器或者无参构造器,在创建类的同时进行初始化。好玩的是,即使我们不主动在类中添加构造器,编译器也会相对应的进行默认构造器的操作,以确保所有的可执行对象都能进行合理的初始化,从而减少错误的量。
  • 构造器是确保对象得到合理初始化的一种工具,但是初始化的工具还有很多,可以理解为包含关系。这里就不得不提两个特殊的性质。方法的重载和this关键词。方法的重载,是指方法名相同,参数列表不同的一类方法的总称。接受不同的参数从而进行个性化定制操作。但是返回值不是区分重载方法的标志,虽然我们可以在源代码上看到他的返回值不同,但是客户端只能看到方法名和参数列表是否合乎规则,返回值是无法查看的。如果一个类创建了多个对象,我们想要在某一个特定类执行某个操作,可用通过对象名来定位,但是在方法内部该如何定义指向呢?这时候this关键词就有出场的必要了,他是指向引用该对象本身,但是无法单独使用,除非是return this;这种情况,在使用时必须跟上该类中相对应的方法或者属性。
  • 如何清理这一节我是直接跳过了,等之后有时间再看吧,看这一节确实很枯燥
  • 初始化的顺序,总体来说遵循两条规则,先定义的先初始化,先静态后其他。这其中非静态是没什么可以说的,他就是简单的先定义先初始化。静态元素的初始化就是我们要讨论的点,他和非静态不同,静态变量通常只进行一次初始化,因为它的空间是公共的,不随着对象的不同而变化操作对象和空间。

2.《计算机导论》:上次说到了DNS,它的功能是将某一个特定的名字唯一的映射到服务器的ip地址,让人们更直观地进行服务器的访问。这个名字是必须在命名空间的范围内才是一个规范的、合法的名字。在网络中,这个命名空间总称为域名空间,分为一般域和国家域,每一个域下都有许多个节点,我们熟悉的有com,net,gov,pro等等。其中一般域中有十四个节点,而国家域有很多,都是不同国家或国家某个州的缩写。

然后就是P2P模式再解释,P2P又可分为集中式和分散式,集中式是指在用户之间添加一个中间服务器,这个服务器可以相应客户端的操作请求。分散式是指客户端之间连接而成一个虚拟的网络,称之为重叠网络。如果连接方式有规律,那就是结构化网络,相反,没有规律就是非结构化网络。结构化网络使用的是DHT,分布式散列表。

下面一层是传输层,它的功能是接受网络层的数据,并把它送到相应的进程,使得应用层可以进行相关操作。传输层分为两个部分,客户端和服务器端,每一端都有一个地址和进程。地址之间、进程之间相互连结,地址用ip来表示,进程之间使用端口号来表示,客户端的端口号称为临时端口号,服务器端口号称为知名端口号,每一个临时端口号都知道与自己匹配的知名端口号,所我们只需要知道临时端口号即可

我们是用协议让每一个步骤得到规范的,传输层也不例外,尽管传输层有许多不同的协议,但比较出名的有UDP(用户数据报协议)和TCP(传输控制协议),UPD不安全已经不用了。TCP规定了来连接设备、数据传输和链接拆卸段以提供更加全面的连接服务。这里要补充一些该概念,一个数据被分为很多称为段的数据包,TCP对每个段进行相关的加密编号,这个编号也被称为序列号。

3.个人感悟:我读书不是为了全盘接收他们的观点,我是在理解的基础上删删减减,量身而裁。还有就是以后学习,至少带三本书,并且里面必须有一本哲学或是历史的书。三者这是分别进行一节这样量的学习,循环往复。我是这样想的,快乐地增长知识,等回过头来就毕业了,会想这些日常会微笑着感慨:好无聊的生活啊, :)

4.这是我这两天的主要成果,就直接放在下面了,午安,各位。

package addStack;

import java.util.*;

class Stack
{
//这里是栈的相关内容
int []stack; //用数组来替代栈本身
int capacity; //这个是栈的容量
int top; //用top来标记栈的状态
public Stack(int capacity)
{
this.capacity = capacity;
this.top = -1;
stack = new int[this.capacity];
}

//初始化栈,分配栈固定的容量
public boolean is_E()
{
return top == -1;
}

//判断栈是否为空
public boolean is_F()
{
return top >= (this.capacity - 1);
}

//判断栈是否已满
public void add_Element(int data)
{
if( is_F() )
System.out.println("栈已满,无法添加元素");
else
stack[++this.top] = data; //这里其实是两个步骤,++i是先相加然后进行赋值
}

//遍历栈
public void print_Stack()
{
int i = this.top;
if( is_E() )
System.out.print("栈为空,无法打印。");
else
{
System.out.print("结果是:");
for( ; i >= 0 ; i--)
{
System.out.print("\u001B[31m" +stack[i]); //改变重要数据的颜色,此处是红色
}
}
}
//栈的使用长度
public int getLength_Stack()
{
return (this.top + 1);
}
//清空栈
public void clear_Stack()
{
if (is_E())
return;
else
while (!is_E())
stack[top--] = 0; //同样,这里也是两步
}
}
class Convert
{
//为了更好地进行相关操作,虽然它不是属性,但还是放在这里比较好
Scanner scanner = new Scanner(System.in);
Stack p = new Stack(32);
int data;
int choice;
int standard = 127;
//构造函数进行类的初始化
public Convert()
{
this.data = -1;
this.choice = -1;
}
//输入类,1:基准数 2:选择
public void input_Data(int i)
{
do
{
try
{
//输入需要转化的数据
if(i == 1)
{
System.out.print("\n请输入您希望转化的正整数[ > 127]: ");
this.data = scanner.nextInt();
if (standard <= data)
break;
continue;
}
//输入功能
else if(i == 2)
{
System.out.print("\n请输入您希望进行的操作: ");
this.choice = scanner.nextInt();
if(choice >= 0 && choice <= 6)
break;
continue;
}
}
catch (java.util.InputMismatchException e)
{
System.out.println("\n\n您输入的并非规定内容\n");
scanner.next(); //清除键盘缓冲值,无限循环问题出在这里
}
}while( true );
}

//打印用户可操作的选项
public void print_Function()
{
System.out.print("\u001B[0m"); // 恢复默认颜色
if( data < 0 )
{
System.out.println("\n未找到可执行数据");
}
else
{
System.out.print("\n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
System.out.println("\n 功能区:1.转化为二进制 2.转化为八进制 3.转化为十六进制 ");
System.out.println("\n 系统区:4.更改数据 5.查看当前需要转换的数据 6.退出程序");
System.out.print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
}

}



//选项的一些具体事项,实现转化功能
//这里还是有些臃肿,后面再改一下
public void convert_Function()
{
int temp = this.data;
//二进制转化
if( choice == 1 )
{
p.clear_Stack();
do
{
p.add_Element(temp % 2);
temp /= 2;
}while( temp >= 2 );
p.add_Element(temp);
System.out.println();
p.print_Stack();
}
//八进制转化
else if( choice == 2 )
{
p.clear_Stack();
do
{
p.add_Element(temp % 8);
temp /= 8;
}while( temp >= 8 );
p.add_Element(temp);
System.out.println();
p.print_Stack();
}
//十六进制转化
else if( this.choice == 3 )
{
p.clear_Stack();
do
{
int i = temp % 16;
if( i <= 15 && i >= 10)
p.add_Element( (i - 10) + 'A');
else
p.add_Element( i + '0');
temp /= 16;
}while( temp >= 16);
if( temp <= 15 && temp >= 10)
p.add_Element( (temp - 10) + 'A');
else
p.add_Element( temp + '0');
System.out.println();
System.out.print("结果是:");
for( int k = this.p.top ; k >= 0 ; k--)
{
System.out.printf("\u001B[31m" + "%c",p.stack[k]);
}
}
//重新输入数据
else if( this.choice == 4 )
{
p.clear_Stack();
input_Data(1);
print_Function();
input_Data(2);
convert_Function();
}
//查看数据
else if(choice == 5)
{
p.clear_Stack();
System.out.println("\n当前的数据为:" + "\u001B[31m" + this.data);
print_Function();
input_Data(2);
convert_Function();
}
//退出程序
else if(choice == 6)
{
p.clear_Stack();
System.out.println("\n程序已退出,感谢使用");
}
}
}
public class Text
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
Convert text = new Convert();
text.input_Data(1);
do
{
try
{
text.print_Function();
text.input_Data(2);
text.convert_Function();
}
catch (java.util.InputMismatchException e)
{
System.out.println("\n\n您输入的并非整数,请进行相关\n");
continue;
}
}while( text.choice != 6);
}
}



    0會員
    20內容數
    这个专题是我个人的学习日记,每日会更新,内容很乱,请多见谅。
    留言0
    查看全部
    發表第一個留言支持創作者!
    你可能也想看
    Google News 追蹤
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    Thumbnail
    從 Vue 班畢業已經 1 個多月,最近也轉職成功,終於有機會把這段歷程記錄下來,當作一個里程碑。此次參加 Vue 班,心境上最大的不同,大概是知道自己即將在完課後,踏上求職道路。所以如果能在課堂期間 2 個月內完成求職作品,我就能提早出發。 ▍學習狀況 雖然先前有稍微玩過 Vue,但也早已
    十個單字 information.  bald. nephew.  mustard. salad. ounce. balcony. deck. library. playground. 在一個晴朗的午後,傑克坐在陽台上,正在閱讀圖書館裡借來的書。他的光頭叔叔大衛帶著他的侄子彼得來拜訪,帶
    Thumbnail
    回顧前兩年的已實現損益,從資料可看出 2021年我還是處於頻繁買賣的境界,小賺就賣,頻繁交易,所衍生出來的手續費、交易稅、買賣總金額都很大!這無形中都是損失(損失了手續費和交易稅,都被政府給賺走了),這是有形的,無形的還是後頭~視力、身體健康、陪伴家人的時間、心情情緒…。 2022年我已經慢慢轉變,
    Thumbnail
    在股市你想要買在最低點,賣在最高點嗎?也就是賺整段!!! 單就這面向,我就選賣在最高點來解釋~ 我跟你說~這是不可能的!!因為你不是從未來回來的,所以你根本不知道最高點是哪裡,且你的最高點是今天的最高點?這一波段的最高點?整個公司歷史營運的最高點??? 人永遠無法預測未來會怎樣,如果有,那人早就不再
    Thumbnail
    在上一篇文章,說明了如何使用向量圖層來描線之後,求好心切的朋友一定會想到,線稿畫完,要塗色了! 但是當你選擇向量圖層,把工具調成油漆桶之後,悲劇發生了,你會發現向量圖層是無法使用油漆桶的😭 起初可能以為自己眼花,但是月英這邊可以很肯定的告訴你,向量圖層無法用油漆桶。 解套方案是,需要設定把向量圖層
    Thumbnail
    回歸我們上面一篇文章,提到的繪圖靈感,我建議可以畫在白紙上,因為今天我們將要使用Clip Studio Paint圖層描線,並且說明圖層的兩種型態(向量圖層及點陣圖層)。 首先來介紹什麼是圖層? 顧名思義,就是一張圖是由不同層重疊而成,如下圖。 這樣的功能,可以滿足以下幾點好處: 可以先
    Thumbnail
    請您現在扮演一位幽默博學的老師,回答什麼是sass中的mixin概念 很高興回答這個問題!在 Sass 中,Mixin 是一種可以將一組 CSS 屬性集合放在一起,以便在需要的地方重複使用的功能。Mixin 可以包含變量、條件語句、迴圈和其他 CSS 屬性,使其更加靈活和強大。
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    Thumbnail
    從 Vue 班畢業已經 1 個多月,最近也轉職成功,終於有機會把這段歷程記錄下來,當作一個里程碑。此次參加 Vue 班,心境上最大的不同,大概是知道自己即將在完課後,踏上求職道路。所以如果能在課堂期間 2 個月內完成求職作品,我就能提早出發。 ▍學習狀況 雖然先前有稍微玩過 Vue,但也早已
    十個單字 information.  bald. nephew.  mustard. salad. ounce. balcony. deck. library. playground. 在一個晴朗的午後,傑克坐在陽台上,正在閱讀圖書館裡借來的書。他的光頭叔叔大衛帶著他的侄子彼得來拜訪,帶
    Thumbnail
    回顧前兩年的已實現損益,從資料可看出 2021年我還是處於頻繁買賣的境界,小賺就賣,頻繁交易,所衍生出來的手續費、交易稅、買賣總金額都很大!這無形中都是損失(損失了手續費和交易稅,都被政府給賺走了),這是有形的,無形的還是後頭~視力、身體健康、陪伴家人的時間、心情情緒…。 2022年我已經慢慢轉變,
    Thumbnail
    在股市你想要買在最低點,賣在最高點嗎?也就是賺整段!!! 單就這面向,我就選賣在最高點來解釋~ 我跟你說~這是不可能的!!因為你不是從未來回來的,所以你根本不知道最高點是哪裡,且你的最高點是今天的最高點?這一波段的最高點?整個公司歷史營運的最高點??? 人永遠無法預測未來會怎樣,如果有,那人早就不再
    Thumbnail
    在上一篇文章,說明了如何使用向量圖層來描線之後,求好心切的朋友一定會想到,線稿畫完,要塗色了! 但是當你選擇向量圖層,把工具調成油漆桶之後,悲劇發生了,你會發現向量圖層是無法使用油漆桶的😭 起初可能以為自己眼花,但是月英這邊可以很肯定的告訴你,向量圖層無法用油漆桶。 解套方案是,需要設定把向量圖層
    Thumbnail
    回歸我們上面一篇文章,提到的繪圖靈感,我建議可以畫在白紙上,因為今天我們將要使用Clip Studio Paint圖層描線,並且說明圖層的兩種型態(向量圖層及點陣圖層)。 首先來介紹什麼是圖層? 顧名思義,就是一張圖是由不同層重疊而成,如下圖。 這樣的功能,可以滿足以下幾點好處: 可以先
    Thumbnail
    請您現在扮演一位幽默博學的老師,回答什麼是sass中的mixin概念 很高興回答這個問題!在 Sass 中,Mixin 是一種可以將一組 CSS 屬性集合放在一起,以便在需要的地方重複使用的功能。Mixin 可以包含變量、條件語句、迴圈和其他 CSS 屬性,使其更加靈活和強大。