java吧 关注:1,293,158贴子:12,827,283

记录下自己的成长

取消只看楼主收藏回复

本人17年本科毕业,985材控专业,工作20个月之后觉着计算机能挣钱,辞职准备考计算机研究生。第一次没考上,和家里人说在家里二战。
然而我高估了我自己,这一年在家里基本只玩儿了,铁**一个。
研究生入学考试马上开始,肯定考不上了,所以现在开始学习java,准备3-4个月后去上海找工作。
96年的,现在24岁。


IP属地:上海来自Android客户端1楼2020-12-07 14:40回复
    一,直接在淘宝上随便买了一家黑马的教程,准备跟着学习。
    二、今天学玩了循环。一共遇到了三个问题。
    1、java环境变量设置完毕后,我突发奇想把新建条目JAVA—HOME删除,PATH条目的值恢复原状,但是在CMD界面中输入java和javac仍然有正常输出。原因不详,希望以后明白。
    2、记事本输入中文,在CMD界面中文输出会出现乱码,需要将记事本另存为编码ANSI的形式。(PS:使用Notepad将编码直接设为ANSI即可,不用记事本了。)
    3、课件在讲循环时说变量在for循环和while循环结束时,一个会消失,一个不会。认为就是C语言中全局变量、局部变量以及函数范围的道理。有学友可以百度搜关键字学习。


    IP属地:上海3楼2020-12-08 00:05
    收起回复
      2025-12-31 22:50:39
      广告
      不感兴趣
      开通SVIP免广告
      Day2:
      一,今天学完了数组。过程中主要问题点如下:
      1、java中数组arr.length可以直接得到数组长度。在main方法中可以使用arr.length,但是在调用的其余方法中,传入的形式参数本质只是一个地址,但仍然可以使用arr.length得到争取长度。如下图中的数组arr及ar。
      百度后查询后经过个人理解,在jvm的堆内存中,每开辟一个数组空间,都会有对应的内存存储好该空间的大小,然后查询该开辟的数组空间地址即可知道长度。但这一切是在jvm内部,与C语言不同。
      2、十进制转换为R进制,整数部分除R取余,逆序排列,小数部分,乘R取整,正序排列。
      之前只是会用,但是说不上十分理解。突然想到,如果说我们正常地十进制数转换为十进制,以123.123为例:
      个位数是123%10,即整数部分除10取余为3,除10取余,逆序排列。
      小数点第一位,0.123*10取整为1,小数部分,乘10取整,正序排列。
      然后其余进制其实是和转换为十进制一样,只是把10换位R。遂念头通达。。。
      二、由于去年是考过研的,只是今年玩儿了一年,所以计算机专业课有一定基础。但是今天翻了翻书,忘差不多了,所以晚上要看专业课并刷题。
      1、今天复习了时间复杂度和空间复杂度的计算。
      诸君晚安。



      IP属地:上海35楼2020-12-09 00:03
      回复
        Day3:
        一,今天学到了做一个学生管理系统,过程中主要遇到的问题点如下:
        1,在不同包中创建了两个相同的类,在调用该名称的类时可以在最上部声明import+路径来确定你要调用的类。
        2,课件讲师在含main方法的类中,声明的方法都有static,但是在为对象创建的类中声明的方法不含有static。不解,通过百度,静态和非静态的观念现在还有些模糊,看看后面的课程能否讲明白,问题暂时记录。
        3,录入程序一定要把{}或()都先打好,漏了个“}”之类很难受。
        二,数据结构刷了线性表的题目,没刷完,明天结束。


        IP属地:上海40楼2020-12-10 01:35
        回复
          Day4
          一、今天的内容比较简单主要是学习了Git,然后在Java语言进阶中回顾了面向对象。(昨天刚在基础班学完,内容一样,讲师不同)。主要问题点如下:
          1、使用原始的Git(右键空白,Git Bash进入),如果更改过多,日志内容较多。在git log 后内容过多,会出现The end。需要按q推出,q是quit。
          2、git出现“Another git process seems....”,然后就无法进行有效操作。是因为git此时不允许多进程,只需要将隐藏的git文件夹中index.lock 文件删除即可。实测删除无影响(或者因为我太菜没发现)。
          3、通过git remote add 给远程仓库命名,如果把名字忘了,可以同过git remote -v进行查询。
          4、不同文件夹(项目)有各自的git隐藏文件,保存了秘钥,与远程版本的链接,不同版本,日志等信息。因此,你在A中给同一远程仓库起的名字在B中未必可以使用,两者名字可以不同。
          5、Idea链接Git后上面4条好像都无所谓了,Idea永远的神
          6、黑马教程是VCS->import into version去创建Git本地仓库。但是idea-2020.3版本可以直接VCS->creat Repository.
          二、数据结构,线性表搞定。


          IP属地:上海49楼2020-12-10 23:07
          收起回复
            Day5
            一、今天学习到了内部类,问题有些多,很多内容视频只是按照一个黑箱讲出,而不给出原因。
            1、子类重写的方法,其访问权限必须大于等于父类同方法的访问权限。视频只是说了这句话,没有说为什么。讲完多态后有些理解:
            package com.myhome.test;
            //父类
            class Fu {
            public void test(){
            System.out.println("这是父类");
            }
            }
            class Zi extends Fu{
            private void test(){/*这里我将public 换为private,编译出错,原因就是访问权限降低*/
            System.out.println("这是子类");
            }
            }
            public class Test{
            public static void main(String[] args) {
            Fu fu=new Zi();//以父类引用数据类型指向子类对象
            fu.test();
            }
            }
            我们在main方法中希望调用的是子类的Test(),这也是多态的意义。如果允许子类重写的方法访问权限下降,如降为private,就与此矛盾。
            2、接口中的静态方法只能接口直接调用,无法通过实现类对象调用,。理解:一个类可以有多个接口,遇到重名的方法要重写,但是静态方法无法重写,干脆不能继承好了。
            3、** 多态访问的个人总结是可以有方法重写就找子类,没有就找父类。因为成员变量,静态成员方法的运行是找父类,非静态方法找子类。
            4、但是多态的机制具体怎么运行感觉还需要看jvm内部运行。
            二、今天没有看专业课。之前想当然的认为4个月可以上完自己下载的课程,目前来看我有些自大了。只是看完课程,对着课程做项目,感觉4个月时间够。但是今天的多态,纯粹黑箱,内部的内存划分,指针具体指向,JVM怎么判断方法重写是否发生,完全没讲。把我看致郁了,就很难受。。慢慢来吧,只能这么告诉自己。


            IP属地:上海52楼2020-12-12 01:57
            回复
              鬼鬼,昨天心里难受,下载boss看了下招聘情况想给自己点儿激励。我这样的简历。发在boss上,几十人要求我发简历过去,我都写明上一条工作经验是在家自学。,,计算机这么好找么?还是这是app糊弄人的?不管怎样,心情好了很多,前途是光明的,加油



              IP属地:上海来自Android客户端53楼2020-12-12 08:43
              收起回复
                今天一上午都在整理多态的那点东西,终于舒服了。趁现在等老板上我的羊杂汤,整理一下。
                1.多态本质是类的同一方法有不同的执行方式。
                2,以左边为父类(抽象类),右边为子类(重写了抽象方法)为例。
                3.1,因为子类数量很多,所以将父类引用作为参数传入方法时,需要使用instances做判断是建立了哪种子类的对象,然后向下整形为该子类。
                3.2,如果想要将向下整形完毕的引用return,因为返回值数据类型是父类,所以会自动向上整形为父类。但是子类独有数据没有丢失,在main方法里重新向下整形为子类就可查。
                4.为什么要有多态呢?因为我们有抽象类,其中有些抽象方法还不知道怎么执行,因而无法创建对象。因此,创建抽象类的引用时,我们本质上是‘想要’创建抽象类的对象,但是无法创建,创建了子类的。所以需要运行时,运行的成员大都是主类的,仅有能够重写的方法运行子类。
                4.1能够重写的方法有两种,抽象方法和非静态方法。抽象方法不用说,父类就没有执行方式,只能用子类的。这里jvm就需要有东西(黑箱,原理暂时未知)看是否有重写,重写的方法在哪里?
                4.2针对普通的非静态方法,jvm也自然而然的调用了4.1的黑箱,子类有没有重写,有就执行子类的方法。(毕竟,多态的目的就是同一方法的不同执行)


                IP属地:上海来自Android客户端54楼2020-12-12 12:44
                收起回复
                  2025-12-31 22:44:39
                  广告
                  不感兴趣
                  开通SVIP免广告


                  IP属地:上海来自Android客户端55楼2020-12-12 12:44
                  回复
                    Day6
                    一、全部是学习的API调用,没什么问题。
                    二、栈和队列ing


                    IP属地:上海56楼2020-12-12 23:26
                    回复
                      Day7
                      一、今天主要是API学习以及做一个学生教师管理系统
                      1.sout(对象名)和sout(对象名.toString)结果一样。sout是System.out.println。查看System的API,out是Print Stream类型的对象.Print Stream类中有println方法,该方法参数为对象名时,会调用该对象的toString方法。
                      2、小数运算会有误差,因为无论float(4字节)还是double(8字节),内存空间都首先。但是一些十进制小数转换为二进制小数后是无限循环小数,要存储在内存中,会有数据丢失。具体存储方法参考:https://blog.csdn.net/chencheng19912012/article/details/30072389
                      3、自动拆箱和装箱的实现原理。没搞明白,先记录下。
                      4、学生教师管理系统上传gitee:https://gitee.com/Zhang-__ShaoLong/java-school-management-system.git
                      二、今天没有复习数据结构。



                      IP属地:上海58楼2020-12-14 01:51
                      收起回复
                        Day8:
                        一、今天学完了单列集合。问题
                        1、iterator循环遍历过程中不能使用Collection中的方法进行删改?视频讲的不是很清楚。
                        https://blog.csdn.net/weixin_41060905/article/details/84303930
                        2、HashLinkedSet 、TreeSet具体实现是通过什么?需要补源码。先标记,等复习完数据结构回来看
                        二、栈队列ing


                        IP属地:上海60楼2020-12-14 23:38
                        收起回复
                          Day9
                          一、今天在学的比较少。完成了双列集合。
                          1、单列集合:ArrayList是顺序表,LinkedList是双链表,HashSet和LinkedHashSet是哈希表。TreeSet是平衡二叉树。
                          2、双列集合:键与值可以用来表示点和边,用来表示图。
                          3、Map类集合中。Set<k> map.keySet();可以返回一个Set类型的集合来存储map的键值。那么问题来了:
                          3.1、Set是接口,我们不能直接用接口创建对象,需要通过接口的实现类或多态。但这里的请况说明我们可以间接的直接用接口创建对象?
                          3.2、这里创建的对象不属于任何一个Set接口的实现类。见下图,我使用instanceof对所有的Set实现类进行判断。只有map.keySet() instanceof Set 的结果是true。
                          3.3那么,这个Set引用类型的集合在内存中是什么样的结构?是其所用泛型的数组?我如果想知道去哪里找?尝试看了源码,并没有进行说明。这里先默认是数组进行理解了。
                          二、今天学的比较少。并没有看数据结构。


                          IP属地:上海62楼2020-12-16 00:20
                          回复
                            Day10
                            一、今天学习了异常以及线程的创建。问题点如下:
                            1、Jvm是怎么识别异常类型的?
                            查询源码,可以发现,每个类中都有提前设置好的Throw,一旦满足,集合抛出。
                            2、为什么子类只能抛出父类异常相同的异常或其子类?
                            2.1、在使用多态时,存在子类向上转型为父类的情况。Fu fu=new Zi();此时,该父类引用的子类对象只能使用父类中所有的方法,包括Zi类中重写的方法。
                            2.2已知,重写的方法的返回值类型,方法名称,参数列表都与父类相同。
                            2.3、通过多态,调用被重写的方法时,是通过Fu类同名方法的入口进入,JVM通过偏移查询是否有重写,有则再执行重写后的方法。(怎么通过偏移查询目前还不了解)
                            2.4、如果子类方法Throws了与父类完全不同的异常,在运行中会通过父类入口调用方法,但父类中并没有声明Throws该异常,遇到了无法处理。
                            2.5.综上,子类只能抛出父类异常相同的异常或其子类。
                            二、栈与队列ing


                            IP属地:上海63楼2020-12-17 00:27
                            回复
                              2025-12-31 22:38:39
                              广告
                              不感兴趣
                              开通SVIP免广告
                              Day11
                              一,学到了死锁
                              1,java中的synchronized同步代码块和同步方法的区别:
                              https://www.cnblogs.com/shuilangyizu/p/10286747.html
                              2,HashMap为什么线程不安全?
                              标记,以后解决。
                              3,创建线程池,视频的教法是
                              ExecutorService ex=Excutor.newFixedThreadPool();
                              但是百度查询该方法已被禁用。原因:https://www.cnblogs.com/ants/p/11343657.html#_label3
                              二,二叉树进行时


                              IP属地:上海64楼2020-12-18 02:59
                              回复