「java算法重点」java 常用算法
本篇文章给大家谈谈java算法重点,以及java 常用算法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、《Java常用算法手册第三版》pdf下载在线阅读全文,求百度网盘云资源
- 2、java面试有哪些算法
- 3、Java学习路线
- 4、学习Java最重要的是什么
- 5、求Java常用算法和经典算法
- 6、java算法有哪些分别
《Java常用算法手册第三版》pdf下载在线阅读全文,求百度网盘云资源
《Java常用算法手册第三版》百度网盘pdf最新全集下载:
链接:
?pwd=mbgq 提取码: mbgq
简介:Java常用算法手册第三版分别介绍了算法基础、算法应用和算法面试题。首先介绍了算法概述,然后重点分析了数据结构和基本算法思想;接着详细讲解了算法在排序、查找、数学计算、数论、历史趣题、游戏等领域中的应用。
java面试有哪些算法
面试-java算法题:
1.编写一个程序,输入n,求n!(用递归的方式实现)。
public static long fac(int n){ if(n=0) return 0; else if(n==1) return 1; else return n*fac(n-1);
} public static void main(String [] args) {
System.out.println(fac(6));
}
2.编写一个程序,有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
public static void main(String [] args) { int i, j, k; int m=0; for(i=1;i=4;i++) for(j=1;j=4;j++) for(k=1;k=4;k++){ if(i!=jk!=ji!=k){
System.out.println(""+i+j+k);
m++;
}
}
System.out.println("能组成:"+m+"个");
}
3.编写一个程序,将text1.txt文件中的单词与text2.txt文件中的单词交替合并到text3.txt文件中。text1.txt文件中的单词用回车符分隔,text2.txt文件中用回车或空格进行分隔。
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class text{
public static void main(String[] args) throws Exception{
String[] a = getArrayByFile("text1.txt",new char[]{'\n'});
String[] b = getArrayByFile("text2.txt",new char[]{'\n',' '});
FileWriter c = new FileWriter("text3.txt");
int aIndex=0; int bIndex=0;
while(aIndexa.length){
c.write(a[aIndex++] + "\n");
if(bIndexb.length)
c.write(b[bIndex++] + "\n");
}
while(bIndexb.length){
c.write(b[bIndex++] + "\n");
}
c.close();
}
public static String[] getArrayByFile(String filename,char[] seperators) throws Exception{
File f = new File(filename);
FileReader reader = new FileReader(f);
char[] buf = new char[(int)f.length()];
int len = reader.read(buf);
String results = new String(buf,0,len);
String regex = null;
if(seperators.length 1 ){
regex = "" + seperators[0] + "|" + seperators[1];
}else{
regex = "" + seperators[0];
}
return results.split(regex);
}
}
4.639172每个位数上的数字都是不同的,且平方后所得数字的所有位数都不会出现组成它自身的数字。(639172*639172=408540845584),类似于639172这样的6位数还有几个?分别是什么?
这题采用的HashMap结构判断有无重复,也可以采用下题的数组判断。
public void selectNum(){
for(long n = 100000; n = 999999;n++){
if(isSelfRepeat(n)) //有相同的数字,则跳过
continue;
else if(isPingFangRepeat(n*n,n)){ //该数的平方中是否有与该数相同的数字
continue;
} else{ //符合条件,则打印 System.out.println(n);
}
}
} public boolean isSelfRepeat(long n){
HashMapLong,String m=new HashMapLong,String(); //存储的时候判断有无重复值
while(n!=0){ if(m.containsKey(n%10)){ return true;
} else{
m.put(n%10,"1");
}
n=n/10;
} return false;
} public boolean isPingFangRepeat(long pingfang,long n){
HashMapLong,String m=new HashMapLong,String(); while(n!=0){
m.put(n%10,"1");
n=n/10;
} while(pingfang!=0){ if(m.containsKey(pingfang%10)){ return true;
}
pingfang=pingfang/10;
} return false;
} public static void main(String args[]){ new test().selectNum();
}
5.比如,968548+968545=321732732它的答案里没有前面两个数里的数字,有多少这样的6位数。
public void selectNum(){
for(int n = 10; n = 99;n++){
for(int m = 10; m = 99;m++){ if(isRepeat(n,m)){ continue;
} else{
System.out.println("组合是"+n+","+m);
}
}
}
} public boolean isRepeat(int n,int m){ int[] a={0,0,0,0,0,0,0,0,0,0}; int s=n+m; while(n!=0){
a[n%10]=1;
n=n/10;
} while(m!=0){
a[m%10]=1;
m=m/10;
} while(s!=0){ if(a[s%10]==1){ return true;
}
s=s/10;
} return false;
} public static void main(String args[]){ new test().selectNum();
}
6.给定String,求此字符串的单词数量。字符串不包括标点,大写字母。例如 String str="hello world hello hi";单词数量为3,分别是:hello world hi。
public static void main(String [] args) { int count = 0;
String str="hello world hello hi";
String newStr="";
HashMapString,String m=new HashMapString,String();
String [] a=str.split(" "); for (int i=0;ia.length;i++){ if(!m.containsKey(a[i])){
m.put(a[i],"1");
count++;
newStr=newStr+" "+a[i];
}
}
System.out.println("这段短文单词的个数是:"+count+","+newStr);
}
7.写出程序运行结果。
public class Test1 { private static void test(int[]arr) { for (int i = 0; i arr.length; i++) { try { if (arr[i] % 2 == 0) { throw new NullPointerException();
} else {
System.out.print(i);
}
} catch (Exception e) {
System.out.print("a ");
} finally {
System.out.print("b ");
}
}
}
public static void main(String[]args) { try {
test(new int[] {0, 1, 2, 3, 4, 5});
} catch (Exception e) {
System.out.print("c ");
}
}
}
运行结果:a b 1b a b 3b a b 5b
public class Test1 { private static void test(int[]arr) { for (int i = 0; i arr.length; i++) { try { if (arr[i] % 2 == 0) { throw new NullPointerException();
} else {
System.out.print(i);
}
}
finally {
System.out.print("b ");
}
}
}
public static void main(String[]args) { try {
test(new int[] {0, 1, 2, 3, 4, 5});
} catch (Exception e) {
System.out.print("c ");
}
}
}
运行结果:b c
8.单词数
统计一篇文章里不同单词的总数。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组值输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend
#
Sample Output
4
public static void main(String [] args) {
ListInteger countList=new ArrayListInteger(); int count;
HashMapString,String m;
String str; //读取键盘输入的一行(以回车换行为结束输入) String[] a;
Scanner in=new Scanner(System.in);
while( !(str=in.nextLine()).equals("#") ){
a=str.split(" ");
m=new HashMapString,String();
count = 0; for (int i=0;ia.length;i++){ if(!m.containsKey(a[i]) (!a[i].equals(""))){
m.put(a[i],"1");
count++;
}
}
countList.add(count);
}s for(int c:countList)
System.out.println(c);
}
Java学习路线
根据个人实际的经历,结合多种书籍,特别整理出了下面的java学习路线:
一、Java SE部分
1、java基础:基础语法;面向对象(重点);集合框架(重点);常见类库API;
2、java界面编程:AWT;事件机制;Swing;
3、java高级知识:Annotation;IO和NIO、AIO;多线程、线程池;阻塞、非阻塞、异步网络通信;反射、动态代理;
二、JDBC编程
4、SQL基础:基础SQL语句;基本查询;多表查询;子查询;结果集的交、并、差运算;
5、JDBC基础:常见数据库用法;JDBC操作常见数据库;RowSet与离线结果集;数据库连接池;事务管理、批处理;
6、JDBC进阶:存储过程、函数;触发器;理解JCBC的不足;掌握ORM工具优势和设计;
三、DHTML编程
7、HTML基础:基本HTML标签;常见表单标签;DIV+CSS布局;
8、JavaScript知识:javascript基本语法;javascript基本对象特征;Json语法;深刻理解javascript的动态特征;
9、Dom和事件机制:DOM操作、编程;常见浏览器事件机制;掌握用户交互技巧;
四、XML编程
10、XML基础:XML基础规则;DTD和SCheme;XML和样式单;
11、XML进阶:DOM、SAX和JAXP;dom4j、JDOM等工具;XQuery和XQJ;基于XML的数据交换;
12、Web Service:JAX_WS2、SAAJ规范;WSDL和SOAP协议;CXF框架、拦截器;CXF整合Spring;
五、Java Web编程
13、Web编程基础:Tomcat服务器;Jsp语法、EL、内置对象;Servlet API;Servlet 3.0注解;Listener和Filter;
14、Web编程进阶:自定义标签库;MVC和DAO、Servlet、标签的作用;JSTL、DisplayTag等常见标签库用法;
15、Web编程原理:请求/响应、架构;Http协议;深刻理解Jsp运行原理;掌握Web容器底层的线程池、socket通信、调用Servlet的命令模式;
六、Ajax编程:
16、Ajax编程:XML HttpRequest和异步请求;发送请求和处理响应;常见Ajax库(Prototype、Jquery、ExtJs、DWR)用法;结合Http协议、异步请求深入研究ajax库的设计;
七、Android开发
17、Android基础:Android开发调试环境;Android应用结构;界面组件与界面编程;资源管理;四大组件;
18、Android中级:文件IO和SQLite;图形、图像与动画;音频、视频的录制与播放;传感器编程;GPS应用;
19、Android高级:网络编程与Web Service;OpenGL_ES 3D开发;整合Google服务;使用NDK开发;java和c相互调试;
八、轻量级Java EE
17、Struts2:MVC与struts体系;Action和Result;国际化和标签库;文件上传、下载;类型转换和输入检验;拦截器与插件开发;
18、Hibernate:ORM与持久化映射;关系映射、继承映射;延迟加载、性能调优;HQL查询、条件查询、SQL查询;二级缓存和查询缓存;
19、Spring:IoC与Bean配置、管理;Bean生命周期;SP、EL;AOP与事务权限控制;S2SH整合开发;Spring整合Jpa;
九、经典Java EE
20、JSF选学:MVC与JSF设计理念;托管Bean与导航模型;JSF流程与事件机制;JSF标签库;类型转换与输入检验;
21、EJB及相关技术:JNPI与RMI;会话Bean及其生命周期;IoC与EJB拦截器;JMS与MDB;会话Bean与Web Service;
22、JPA:ORM框架与JPA规范;JPA注解与常用API;JTA事务与事务管理;JPQL查询;EJB、JPA整合;
十、Java 拓展、进阶:
23、Java EE实践与架构:Ant+Ivy或Maven;SVN、CVS;深刻理解10种以上设计模式;掌握各种Java EE架构及各自优势;
24、Workflow:Workflow规范及功能;JBPM等workflow框架;多次重构、反复思考;大型项目经验;
25、Java EE进阶:掌握各MVC框架运行原理、能开发类似框架;掌握Spring、HiveMind、AspectJ等框架原理、能开发类似工具;掌握Hibernate、iBatis等框架原理,能开发类似工具;深入研究EJB机制、大致了解应用服务器的实现;
希望对您有所帮助!~
学习Java最重要的是什么
Java前景是很不错的,像Java这样的专业还是一线城市比较好,师资力量跟得上、就业的薪资也是可观的,学习Java可以按照路线图的顺序,
0基础学习Java是没有问题的,关键是找到靠谱的Java培训机构,你可以深度了解机构的口碑情况,问问周围知道这家机构的人,除了口碑再了解机构的以下几方面:
1. 师资力量雄厚
要想有1+12的实际效果,很关键的一点是师资队伍,你接下来无论是找个工作还是工作中出任哪些的人物角色,都越来越爱你本身的技术专业java技术性,也许的技术专业java技术性则绝大多数来自你的技术专业java教师,一个好的java培训机构必须具备雄厚的师资力量。
2. 就业保障完善
实现1+12效果的关键在于能够为你提供良好的发展平台,即能够为你提供良好的就业保障,让学员能够学到实在实在的知识,并向java学员提供一对一的就业指导,确保学员找到自己的心理工作。
3. 学费性价比高
一个好的Java培训机构肯定能给你带来1+12的效果,如果你在一个由专业的Java教师领导并由Java培训机构自己提供的平台上工作,你将获得比以往更多的投资。
希望你早日学有所成。
求Java常用算法和经典算法
java.util.Arrays中包含了很多算法你可以看一看,jdk安装的时候就有提供源代码的。
java算法有哪些分别
您好:
java中的算法,常见的有:递归、迭代、查找、排序(包含冒泡排序、选择排序、插入排序、快速排序四种) 等,算法有很多,一般数据结构中涉及到的都可以用java语言实现。
举几个例子:
1.递归的例子:
2.排序的例子:
不一一举例,仅供参考!
java算法重点的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 常用算法、java算法重点的信息别忘了在本站进行查找喔。
发布于:2022-11-27,除非注明,否则均为
原创文章,转载请注明出处。