还是有些必要的,大公司笔试面试基本都是靠计算机网络及数据结构与算法。
建议找些基础的算法如排序查找等入门就可以了,java新人用不到多深层次的算法,
新人初学Java的话建议还是讲基础知识弄通弄透比较好。
‘贰’ Java面试笔试,数据结构和算法考到什么程度
你说的那个数据结构不一定考的。
Java面试就那么点东西,各个公司也不一样。
有的分笔试和机试。这些公司想看看实际面试人员的能力,节省了以后的时候。
笔试中,无非就是一些概念性的东西巴了。
比如:jsp是servlet吗?
servlet的生存周期;还有一些面向对象的知识。这些平常用心的话都没问题,即使临阵磨枪也行。
那么机试就的要看你自己的能力了,对框架的属性程度。还有就是在也不能常见的对数据
库的CRUD也就是增删改查操作。机试都好这口。
其实面试如果也没笔试机试那么就问几道题的话,如果是技术人,几道题下来就知道你的底子了,在问些逻辑上的也就知道要你还是不要你了。
在有你要对一些数据库知识了解一些。
做java的
oracle
得达到掌握
sql
server
了解就行
基本语法啥的就可以了
mysql
这个也得达到掌握
别的就不要会用到
‘叁’ 移动互联网公司做java开发的为什么对数据结构与算法要求比较高呢
因为性能很重要, 一个优秀的数据结构可以很高效的处理复杂的问题。 因为移动互联网本身就决定了性能的重要程度。 所以数据结构算法真的很重要。 尤其是搞大数据处理
‘肆’ java数据结构和算法一些问题
这是数据结构:
#include<stdio.h>
void display(struct film);
struct film
{
char name[25];
};
main()
{
struct film f1;
scanf("%s",f1.name);
display(f1);
}
void display(struct film x)
{
printf("%s\n",x.name);
}
这是一个抽象类:
abstract class human
{
public abstract void eat();
public void walk()
{
System.out.println ("walk on foot");
}
}
抽象类必须有关键字:abstract
也就是说只有在class之前写abstract那就是抽象类.
在方法之前写abstract,那就是抽象方法!
‘伍’ 算法与数据结构对于Java程序员意味着什么
我觉得被采纳的答案有失偏颇,数据结构是非常重要的,而且不同的算法根本不会只产生0.01秒的优势.最简单的例子,排序,N^2的效率怎么可能跟N*logN比.在投行等地,有些程序即便是算法大量优化过后还要执行几个小时,可想而知如果不大量优化,恐怕要至少执行几天.另外很多API内部的数据结构搞不清楚,使用上也是稀里糊涂.只不过,真心想研究算法,应该至少会C/C++.java的优势不在这上面.当然了,算法,学了身价肯定会上升的.google,amazon面试都要考算法的
‘陆’ 求有一定难度的考验数据结构算法能力的Java面试题
1.实现生产者和消费者问题(多线程)
2.冒泡排序、二分查找
先写这几个
‘柒’ java面试时的一个数据结构问题
importjava.util.Random;
publicclassShuiji{
String[]result;
intindex=0;
Randomran=newRandom();
publicShuiji(){
result=newString[100];
getResult();
for(inti=0;i<result.length;i++){
if(i%10==9){
System.out.println(""+result[i]+",");
}else{
System.out.print(""+result[i]+",");
}
}
}
publicstaticvoidmain(String[]args){
newShuiji();
}
publicvoidgetResult(){
for(inti=0;i<result.length;i++){
StringaddValue=getString();
if(containsValue(addValue)==true){
i--;
}else{
result[i]=addValue;
index++;
}
}
}
publicbooleancontainsValue(StringpValue){
booleancont=false;
for(inti=0;i<index;i++){
if(result[i].equals(pValue)){
cont=true;
break;
}
}
returncont;
}
publicStringgetString(){
intfirst=ran.nextInt(36);
StringBuffersb=newStringBuffer();
if(first<10){
sb.append((char)(48+first));
}else{
sb.append((char)(87+first));
}
intsecond=ran.nextInt(36);
if(second<10){
sb.append((char)(48+second));
}else{
sb.append((char)(87+second));
}
returnsb.toString();
}
}
我也不知道这种算法是不是够简单,可以参考一下。
‘捌’ java数据结构与算法分析
于之前面试android的时候考到了很多关于java的知识,所以这次重温数据结构知识就打算用java来学习,毕竟android是以java为基础的,而且我现在学习的j2ee架构也是以java为基础的。
java中的类就是对现实世界的对象的一种抽象,例如人就是一个类别,人有名字,联系电话,住址等成员属性,人拥有说话,吃饭,走路等成员方法。类就是这样,定义了一种对象,它有什么,会做什么。
继承——子类就是父类的一种特定类别。例如学生就是人的子类,学生属于人,是特定的一类人。所以我们让学生继承人,这样学生可以拥有人的属性和方法,也就是说,学生也有了名字,联系电话,住址等成员属性,拥有说话,吃饭,走路等成员方法。但是学生还有特定的一些方法(读书,上课),或者特定的一些属性(学号,年级),这些可以添加在子类中。
因为每个子类都属于父类,例如每个学生都属于人,所以可以用父类来引用子类的对象:People p = new Student();反过来不行。
java中一个类只能继承一个父类,也就是单继承。
但一个类可以实现多个接口,间接地实现了多继承。接口就是一系列方法的声明,没有实现。于之前面试android的时候考到了很多关于java的知识,所以这次重温数据结构知识就打算用java来学习,毕竟android是以java为基础的,而且我现在学习的j2ee架构也是以java为基础的。
java中的类就是对现实世界的对象的一种抽象,例如人就是一个类别,人有名字,联系电话,住址等成员属性,人拥有说话,吃饭,走路等成员方法。类就是这样,定义了一种对象,它有什么,会做什么。
继承——子类就是父类的一种特定类别。例如学生就是人的子类,学生属于人,是特定的一类人。所以我们让学生继承人,这样学生可以拥有人的属性和方法,也就是说,学生也有了名字,联系电话,住址等成员属性,拥有说话,吃饭,走路等成员方法。但是学生还有特定的一些方法(读书,上课),或者特定的一些属性(学号,年级),这些可以添加在子类中。
因为每个子类都属于父类,例如每个学生都属于人,所以可以用父类来引用子类的对象:People p = new Student();反过来不行。
java中一个类只能继承一个父类,也就是单继承。
但一个类可以实现多个接口,间接地实现了多继承。接口就是一系列方
‘玖’ java数据结构和算法
首先看存储方式, 这个list, 只保存一个link的引用, 作为链表的头, 然后通过这个头.next, 得到第二个, 第二个.next得到第三个, 一次类推, 知道.next == null 的时候, 说明list结束.
那么现在分两种情况看:
1. 当当前链表里面没有元素的时候, 那么就添加一个, 然后让它的next = first, 也就是为null, 那么链表在遍历的时候, 访问了第一个, 然后第一个.next == null, 链表就到头了.
2.当当前链表里面有元素的时候, 那么因为方法叫做firstinsert, 也就是添加头元素, 所以先声明一个link = newlink, 然后让newlink, 的next 指向之前list.first素, 那么现在newlink就变成了第一个, 而之前那个变成了第二个, 然后再把newlink的引用赋给first, 这样, 链表的头就变成了newlink, 达到了first insert的目的.
first的引用就是我上面分析的两种情况, 一种是没有元素就是null, 另一种情况是有, 变成了第二个, 因为这个list要有结束的位置, 否则就无限长了, 结束的条件就是遍历list的时候, 最后一个元素.next == null, 这样list就停住了我大体画个图吧, 你看看:
第一种情况: 当队列中没有元素的时候
列表中什么都没有 : [ (head)null ]
有一个newlink {nl}
执行完newlink.next=first; {nl} -> null
执行完first=newlink; [ (head){nl} -> null ];
这样list的头就是newlist, 只有它一个元素.
第二中情况: 当队列中有元素的时候:
假设当前头元素为{oldhead}
[ (head){oldhead} -> {obj1} -> {obj2} ... {objn} -> null]
有一个newlink {nl}
执行完newlink.next=first; {nl} -> {oldhead}
执行完first=newlink; [ (head){nl} -> {oldhead} -> {obj1} -> {obj2} ... {objn} -> null]
这样list的头就是newlist, 而oldhead就变成了第二个元素, 后面的元素以此类推.
‘拾’ Java数据结构与算法
/*给出一组数:1,4,7,10,。。。,3N+1,n为正整数 找出下一个数和第十个数
* 写出伪代码和Java代码 谢谢啦*/
public static String getNumber(int number){
//定义一个初始值0
判断如果number为0或是负数
return "您输入的不对请输入正整数(除0意外的自然数)";
否则就进行运算
根据算式 3*(number-1)+1进行运算
返回运算结果
}
}
public static void main(String [] args){
打印输出
}
/*给出一组数:1,4,7,10,。。。,3N+1,n为正整数 找出下一个数和第十个数
* 写出伪代码和Java代码 谢谢啦*/
public static String getNumber(int number){
int result = 0;
if(number == 0 || number < 0){
return "您输入的不对请输入正整数(除0意外的自然数)";
}else{
result = 3*(number-1)+1;
return ""+result;
}
}
public static void main(String [] args){
System.out.println("第五项:"+Test1.getNumber(5));
System.out.println("第十项:"+Test1.getNumber(10));
}
希望对您有帮助