java程序知识
1. 一个优秀的java程序员需要学习哪些知识
入门-中级-高级
一、JavaSE基础
1.1、J2SE
JAVA 开发基础知识 | Eclipse 开发环境 | J2SE 5.0 API | J2SE 8.0新特性 | 多线程技术 | Socket
网络技术
|
Regular Expression | Java反射技术 | Properties技术 | 各种实战设计模式| Java Debug技术 |
面向对象设
计原则详解 | 实例解决面向对象设计 | 面试题内部详解 | 面试答题技巧详解 | AWT/SWING技术
1.2、实战数据结构
数据结构实战训练 | 数组、链表等常用数据结构实战
1.3、正则表达式
正则表达式基本语法。预搜索、断言、分组。 JAVA操作正则表达式Matcher/Pattern
1.4、反射机制
JAVA的动态性、Reflection技术、JVM类加载器、Class对象、Method等。
1.5、CHAT项目
Chat项目通过完成一个模拟的在线聊天系统,主要锻炼大家对于TCP/IP、Socket编程、C/S模式的编程、线程的运用等方面的能力。
1.6、坦克大战单机版/图片版/网络版
这三个项目通过大家喜闻乐见的小游戏的形式来锻炼大家对于JavaSE综合运用的能力,并且能够初步运用面向对象的编程理念,锻炼初步的设计能力,并基本掌握多线程的编程。
二、Java Web开发
2.1、数据库技术
Oracle 基础管理;SQL 语言PL/SQL
语言;触发器、存储过程;MySQL,SQLServer简介;业界常见问题设计;数据库表的设计范式;数据备份与移植;多表连接难题详解;嵌入式数据库应用;
2.2、JDBC技术
JDBC基础; 连接池技术;使用设计模式开发连接池;详细扩展与测试池效率;
2.3、HTML4 & CSS & JavaScript
HTML 语言;CSS 语言; JavaScript 语言;JS常用模版;后台管理模版; DOM; JS操作CSS; JS操作DOM;
ECMAScript; JS操作DIV;protoype;js基于对象编程; ;Firefox和firebug调试技术;
2.4、Bootstrap
前端css框架,让我们的学生不会美工也能做出漂亮的页面;
2.5、Jquery
Jquery基本技术;Jquery使用插件;
2.6、Http协议深入
使用HttpWatcher深入理解协议内部机制;
2.7、JSTL标签库
JSTL核心标签库,JSTL函数标签库、JSTL格式化标签库,JSTL之XML解析标签库、自定义标签技术;
2.8、JSP & Servlet
Servlet 技术;JSP 技术; JSTL Tag Library 技术; Filter&Listener技术; 报表系统;
FileUploading; Tomcat 服务器技术;servlet 过滤器和AOP编程;servlet监听器;
2.9、SCM技术
CVS初步;SVN简介;
2.10、Java Web实战演练
综合运用所学知识; HTML + CSS + JS; JSP + Servlet + JavaBean; FileUploading; 分页技术;
数据校验; MVC初步; Filter; Listener;
2.11、XML 技术
XML + XSL + DTD/Schema;XML数据解析; XML应用详解;XQUERY技术;CAST技术(XML数据和对象互转);
2.12、AJAX技术
AJAX技术基础; AJAX技术框架; AJAX技术调试技巧;
2.13、项目实战
《基于servlet/JSP技术的电子商务网站》、《基于AJax和Jquery的BBS论坛系统》、《基于Apache Commons
FileUpload的网络硬盘系统》
三、主流框架技术及项目实战
3.1、流行Web 框架简介
Struts2/spring4.x/hibernate4.x/spring mvc / WebWork /mybatis等简介
3.2、MVC 模式
Model View Controller 模式深入
3.3、SpringMVC
springmvc概述; springmvc的开发流程;springmvc基本配置; springmvc的注解开发; 常用注解;
service,control,reposity,reques+mapping,responseboby等
3.4、Struts2.x
Struts2的基本开发流程;action类的三种实现方法; XML配置的几种方法; Struts2国际化支持; Struts2异常处理;
Struts2的验证框架; Struts2的多模块配置;拦截器;
3.5、Hibernate4.x
Hibernate基本开发流程; ORM简介; 模拟SQL语句的自动生成; hibernate的检索; 性能优化 一级缓存 二级缓存 查询缓存
事务与并发
悲观锁、乐观锁
3.6、Spring4.x
简单工厂模式 ;抽象工厂; 工厂方法模式; Spring3简介; Spring的基本开发流程; IOC、DI; Bean的配置;
SSH框架的整合;Spring的注解开发; Spring AOP开发 代理模式 静态代理、动态代理、CGLIB;
3.7、Mybatis
Mybatis简介; Mybatis的开发流程; 配置文件 ;映射文件; 面向接口的Mybatis开发;
3.8、手工编写实战开发 struts2.x框架
亲自动手开发struts2.x框架,融入设计模式,让大家的对struts的核心机制烂熟于胸!
3.9、手工编写实战开发 Hibernate4.x框架
芯学苑名师亲自带领你开发hibernate框架,让你真正将ORM框架理解透彻!
3.10、手工编写实战开发mybatis框架
完成另一个ORM框架mybatis的开发工作!
3.11、手工编写实战开发 Spring 4.x框架
Spring是最著名的框架之一!也是业界应用范围非常广泛的框架!是否对其核心机制有透彻了解,往往是高薪的关键!因此,芯学苑名师带领你完成spring框架核心机制的开发。当别人还在探讨如何使用spring时,你已经更上层楼!
3.12、项目实战
《基于struts2+spring+mybatis的电子政务系统》、《基于spring MVC+hibernate的在线考试系统》
2. java基础知识有那些
基础语法:
jdk的安装和环境配置,
变量和常量,
条件判断语句,
循环语句,
循环控制语句
方法和数组:
方法的定义和调用,
方法的重载和递归操作,
数组的定义和初始化,
数组的遍历和常见的方法调用
面向对象:
类的定义和对象的创建,
对象的实例化流程,
抽象,
封装,
继承,
多态思想,
接口的设计和实现
异常和常用类:
异常机制和异常体系,
try-catch语句,
throw和throws关键字,
自定义异常,
String,
StringBuffer,
StringBuilder类,
System,
Runtime类,
Math,
Random,
BigDecimal类
多线程:
并行和并发,
进程和线程,
线程的启动方式,
线程安全的处理方式,
同步锁和死锁的概述,
线程的生命周期和状态,
联合线程和后台线程,
线程优先级和线程礼让和定时器
集合框架:
ArrayList和LinkedList,
HashSet和TreeSet,
LinkedHashSet,
Comparable接口和Comparator接口,
HashMap和TreeMap,
LinkedhashMap,
泛型的定义和使用
IO和网络编程:
File类的基本使用,
FilenameFilter接口的使用,
IO流的体系结构,
字节流和字符流的使用,
缓冲流,标准流,打印流,转换流,数据流,管道流,对象流,
对象序列化和发序列化,
字符编码和解码,
Properties类加载资源,
RandomAccessFile类,
NIO操作,
网络概述和分层模型,
网络三要素,
TCP和UDP协议和编程
3. java程序员应该具备什么知识
自学能力.
如果是找工作的话.就需要几个漂亮的项目.
另外,数据结构现在都没人问了?
顶级公司都考这个. 下层的公司一般直接问框架.意思是你能干活就行了.
4. java程序员需要掌握什么知识
java基础,oracle数据库,servlet,jsp,javascript,jdbc和tomcat使用,以及三大框架(ssh),我也是搞java的,同行,祝你工作顺利……
5. java基础知识有哪些
对于Java开发学习者来说,基础掌握的知识点有以下几种:
1. Java面向对象的优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
2. Java虚拟机的概念,任何一种可以运行Java字节码的软件均可看成是Java的虚拟机(JVM)
3. JDK顾名思义它是给开发者提供的开发工具箱,是给程序开发者用的。它除了包括完整的JRE(Java Runtime Environment),Java运行环境,还包含了其他供开发者使用的工具包。
4. JRE的概念,普通用户而只需要安装JRE(Java Runtime Environment)来运行Java程序。而程序开发者必须安装JDK来编译、调试程序。
5. Java中覆盖(Override)是指子类对父类方法的一种重写,子类只能抛出比父类更少的异常,且访问权限不能比父类的小。被覆盖的方法不能是 private 的,否则只是在子类中重新定义了一个方法。
Java中重载(Overload)表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同。
6. java基础知识
7.Swing组件中常用于提示的组件叫 面板容器 。
8.AWT基本组件类有(至少写出两个): Dialog与FileDialogTextArea等。
9.如果一个对象未被实例化就使用了,这会导致空指针异常。中文称为数组小标越界的异常。
10.Java异常处理机制一般是通过语句try-catch来处理。
11. 子类想要访问父类的同名方法,应当使用super关键字。
12. 网络常见协议有 TCP 、UDP、Telnet,FTP,POP3等。
7. JAVA程序入门知识点
看看java最简单的计算器
使用applet编写(自己研究一下吧)
import Java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.applet.Applet;
import javax.swing.*;
import javax.swing.border.*;
public class Calculator extends JApplet implements ActionListener
{
private final String[] KEYS={"7","8","9","/","sqrt",
"4","5","6","*","%",
"1","2","3","-","1/x",
"0","+/-",".","+","="
};
private final String[] COMMAND=;
private final String[] M=;
private JButton keys[]=new JButton[KEYS.length];
private JButton commands[]=new JButton[COMMAND.length];
private JButton m[]=new JButton[M.length];
private JTextField display =new JTextField("0");
// public JTextField setHorizontalAlignment(int alignment);
// private JTextField display.setHorizontalAlignment(JTextField.RIGHT)=new JTextField("0");
private void setup()
{
display.setHorizontalAlignment(JTextField.RIGHT);
JPanel calckeys=new JPanel();
JPanel command=new JPanel();
JPanel calms=new JPanel();
calckeys.setLayout(new GridLayout(4,5,3,3));
command.setLayout(new GridLayout(1,3,3,3));
calms.setLayout(new GridLayout(5,1,3,3));
for(int i=0;i<KEYS.length;i++)
{
keys[i]=new JButton(KEYS[i]);
calckeys.add(keys[i]);
keys[i].setForeground(Color.blue);
}
keys[3].setForeground(Color.red);
keys[4].setForeground(Color.red);
keys[8].setForeground(Color.red);
keys[9].setForeground(Color.red);
keys[13].setForeground(Color.red);
keys[14].setForeground(Color.red);
keys[18].setForeground(Color.red);
keys[19].setForeground(Color.red);
for(int i=0;i<COMMAND.length;i++)
{
commands[i]=new JButton(COMMAND[i]);
command.add(commands[i]);
commands[i].setForeground(Color.red);
}
for(int i=0;i<M.length;i++)
{
m[i]=new JButton(M[i]);
calms.add(m[i]);
m[i].setForeground(Color.red);
}
JPanel panel1=new JPanel();
panel1.setLayout(new BorderLayout(3,3));
panel1.add("North",command);
panel1.add("Center",calckeys);
JPanel top=new JPanel();
top.setLayout(new BorderLayout());
display.setBackground(Color.WHITE);
top.add("Center",display);
getContentPane().setLayout(new BorderLayout(3,5));
getContentPane().add("North",top);
getContentPane().add("Center",panel1);
getContentPane().add("West",calms);
}
public void init()
{
setup();
for(int i=0;i<KEYS.length;i++)
{
keys[i].addActionListener(this);
}
for(int i=0;i<COMMAND.length;i++)
{
commands[i].addActionListener(this);
}
for(int i=0;i<M.length;i++)
{
m[i].addActionListener(this);
}
display.setEditable(false);
}
public void actionPerformed(ActionEvent e)
{
String label=e.getActionCommand();
// double zero=e.getActionCommand();
if(label=="C")
handleC();
else if(label=="Backspace")
handleBackspace();
else if(label=="CE")
display.setText("0");
else if("0123456789.".indexOf(label)>=0)
{handleNumber(label);
// handlezero(zero);
}
else
handleOperator(label);
}
private boolean firstDigit=true;
private void handleNumber(String key)
{
if(firstDigit)
display.setText(key);
else if((key.equals("."))&&(display.getText().indexOf(".")<0))
display.setText(display.getText()+".");
else if(!key.equals("."))
display.setText(display.getText()+key);
firstDigit=false;
}
//private void handlezero(String key)
//{
// if(!((double)display.setText(key))
// display.setText(0);
// }
private double number=0.0;
private String operator="=";
private void handleOperator(String key)
{
if(operator.equals("/"))
{
if(getNumberFromDisplay()==0.0)
display.setText("除数不能为零");
else
{
number/=getNumberFromDisplay();
long t1;
double t2;
t1=(long)number;
t2=number-t1;
if(t2==0)
display.setText(String.valueOf(t1));
else
display.setText(String.valueOf(number));
}
}
else if(operator.equals("1/x"))
{
if(number==0.0)
display.setText("零没有倒数");
else
{
number=1/number;
long t1;
double t2;
t1=(long)number;
t2=number-t1;
if(t2==0)
display.setText(String.valueOf(t1));
else
display.setText(String.valueOf(number));
}
}
else if(operator.equals("+"))
number+=getNumberFromDisplay();
else if(operator.equals("-"))
number-=getNumberFromDisplay();
else if(operator.equals("*"))
number*=getNumberFromDisplay();
else if(operator.equals("sqrt"))
{
number=Math.sqrt(number);
}
else if(operator.equals("%"))
number=number/100;
else if(operator.equals("+/-"))
number=number*(-1);
else if(operator.equals("="))
number=getNumberFromDisplay();
long t1;
double t2;
t1=(long)number;
t2=number-t1;
if(t2==0)
display.setText(String.valueOf(t1));
else
display.setText(String.valueOf(number));
operator=key;
firstDigit=true;
}
private double getNumberFromDisplay()
{
return Double.valueOf(display.getText()).doubleValue();
}
private void handleC()
{
display.setText("0");
firstDigit=true;
operator="=";
}
private void handleBackspace()
{
String text=display.getText();
int i=text.length();
if(i>0)
{
text=text.substring(0,i-1);
if(text.length()==0)
{
display.setText("0");
firstDigit=true;
operator="=";
}
else
display.setText(text);
}
}
public static void main(String args[])
{
JFrame f=new JFrame();
Calculator Calculator1=new Calculator();
Calculator1.init();
f.getContentPane().add("Center",Calculator1);
f.setVisible(true);
f.setBounds(300,200,380,245);
f.setBackground(Color.LIGHT_GRAY);
f.validate();
f.setResizable(false);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
f.setTitle("计算器");
}
}