首页 > 编程语言 >Java就业学习 Day 1

Java就业学习 Day 1

时间:2024-01-15 22:23:59浏览次数:33  
标签:Java charAt int 就业 next 数组 字符串 Day

Java开发能力:
系统学习Java开发的第一天,终于知道Java和Java SE的区别是什么了。。
过完了Java初阶的课程,从Java历史、数据类型到二位数组。Java中阶课程面向对象这一节还没看完,有几点影响还挺深的,大一刚学Java的时候确实没怎么明白。
①方法的重载:之前不知道方法重载有什么用,现在看来就是对象进行一个初始化的作用。
②面向对象为什么叫面向对象。课程里开门装大象的例子还挺形象的,不过两年前学校里好像也是举得这个例子,似乎上课睡着了没听。。
③局部变量和成员变量:大一的时候老师总说,完全没明白有什么区别。。当时就知道一个全局变量。
成员变量:类中方法外定义的变量
局部变量:方法中定义的变量,代码块中定义的变量
④内存分析:好像是第一次接触到Java的内存机制,方法区存放字节码,堆存放对象,栈存放属性。

算法:
今天算法摆烂了,怎么到了字符串这变难了,链表都比这容易。
①实现 strStr():在一个字符串中查找另一个字符串。用到了一个挺重要的东西KMP。KMP的精髓好像是next数组的求解,next数组的精髓又是最小公共前后缀。
next求解代码:
int j = -1;
int[]next = new int[s.length()];
next[0] = j;
for(int i = 1; i <= s.length(); i++){
while(j>=0 && s.charAt(j+1) != s.charAt(i)){
j = next[j];
}
if(s.charAt(j+1) == s.charAt(i)){
j++;
}
next[i] = j;
}
然后比较模板数组s跟给定数组h,方法差不多吧。。
int j = -1;
int[]next = new int[s.length()];
getNext(s,next)
for(int i = 0; i <= h.length(); i++){
while(j>=0 && s.charAt(j+1) != h.charAt(i)){
j = next[j];
}
if(s.charAt(j+1) == h.charAt(i)){
j++;
}
if(j == s.length() - 1){
return (i - s.length() + 1);
}
}
return -1;
②重复的子字符串:又是KMP的题
大概就是求一下给定数组的next数组,然后看一下next数组最后一位的值是多少,代表除去最长公共前后字符串剩下几位,假设剩x位。如果给定字符串的长度除以x能除开,就返回true!
别忘了最后一位得大于等于0。

结束,明天再学

标签:Java,charAt,int,就业,next,数组,字符串,Day
From: https://www.cnblogs.com/zygacmg/p/17966540

相关文章

  • java基础
    Java基础部分基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法。1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?可以有多个类,但只能有一个public的类,并且public的类名必须......
  • JAVA学习笔记 - Day3
    IDEA优化Bilibili:https://www.bilibili.com/video/BV1664y1U73u/?spm_id_from=333.337.search-card.all.click&vd_source=1939d858b6429ddf9c340541a096299d大小写联想,不区分大小写。勾选掉/显示注释(时间可调)自动导包,选择"always"选择JDK版本及编译输出配......
  • Java运用构造方法,计算并输出两点间的距离
    importjava.util.Scanner;publicclassjavaTest{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubdoublex1,y1,x2,y2;Scannersc=newScanner(System.in);while(sc.hasNext()){x1=sc.nextDo......
  • Java中::作用及应用场景
    Java中的::Java中双冒号(::)是一种全新的操作符,也称为方法引用,它允许开发人员通过名称来引用现有方法,可以视为Lambda表达式的一种缩写应用格式:类名::方法名四种方法引用类名::静态方法名对象实例名::实例方法名类名::实例方法名构造方法引用前提条件Lambda体中只有......
  • 吴师兄学算法day07 双指针 680. 验证回文串 II
    题目:680. 验证回文串II易错点:s[1:3]是左闭右开我的第一次代码:classSolution(object):defvalidPalindrome(self,s):""":types:str:rtype:bool"""isPalindrome=lambdax:x==x[::-1]l......
  • 代码随想录 day20 最大二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
    最大二叉树前序遍历递归效率不高因为每次都要新开数组给左右子树可以在同一个数组上做这个事情合并二叉树一开始不知道怎么同时遍历两棵树其实只要同时传入两棵树的节点就可以了这里判断两棵树谁空就另外一个作为构造树全为空那就会构造空节点二叉搜索树中的搜索......
  • 14_Java基础-运算符3:逻辑运算符+位
    逻辑运算符&&(与)逻辑与运算,两个变量都为真,结果为true||(或)逻辑或运算,两个变量有一个为真,结果为true!(非)如果是真,则变为假,如果是假则变为真短路运算第一个数为错,后面不执行位运算符&(和)|(或)^(异或)~(取反)位运算,不要轻易用,容易出错,效率极高<<:左移:x2》》:右移:/2......
  • java中 Happens-Before 原则
    前言并发问题有三个根本原因:cpu缓存导致可见性问题线程切换导致原子性问题:线程切换是发生于任何一条cpu指令级别的,而不是高级语言中的语句,例如i++是三个cpu指令编译器优化导致有序性问题CPU缓存导致可见性问题与Java内存模型(JMM)的问题实际上是两个相互关联的概念。CPU......
  • SparkStreaming in Java
    参考地址:SparkStreamingProgrammingGuide1.新建Maven项目,POM引入依赖<dependency><groupId>org.apache.spark</groupId><artifactId>spark-streaming_2.13</artifactId><version>3.5.0</ve......
  • Day50 简单小结:类与对象
    简单小结:类与对象1.类与对象类是一个模板:抽象对象是一个具体的实例2.方法定义,调用!3.对象的引用引用类型:基本类型(8)对象是通过引用来操作的:栈---->堆4.属性:字段Filed成员变量默认初始化:数字:00.0c......