Java工作笔记(必看经典)
- 格式:doc
- 大小:237.50 KB
- 文档页数:30
J a v a基础知识笔记总结(总97页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除Java知识——精华总结一、java概述与基础知识 (3)二、方法与数组 (8)三、面向对象(1) (12)四、面向对象(2) (17)五、异常处理和常用类 (24)六、线程技术 (33)七、集合框架(1) (43)八、集合框架(2) (46)九、IO操作(1) (48)十、IO文件操作(2) (52)十一、网络编程 (54)十二、反射机制 (62)十三、GUI界面 (67)十四、Java高新技术(1) (70)十五、Java高新技术(2) (72)十六、Java高新技术(3) (75)十七、面试题之交通灯管理系统 (82)十八、面试题之银行业务系统 (85)一、java概述与基础知识 (3)1、何为编程 (3)2、Java语言概述,历史、特点 (3)3、什么是跨平台性原理是什么JVM (3)4、Jre和Jdk的区别 (3)5、java虚拟机JVM (3)6、 Java程序运行机制 (4)7、学习java注意的地方 (4)8、Java语法格式 (4)9、代码注释:单行错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
错误!未指定书签。
JAVA(J2SE/J2EE)JAVA(J2SE/J2EE)学习笔记学习笔记/kv2004Java Paradise 群号:81556987,欢迎传播!JA V A(J2SE)基础一、JAVA 语法基础标识符-date:0908111.什么叫标识符?就是一个名字2.在JAVA 中,遇见的标识符有类名、方法名和变量名。
3.标识符的命名规则:i.标识符有字母、数字、下划线(_)以及美元($)符号组成。
ii.标识符不能以数字开头iii.不能和JAV A 中的关键字或者保留字重名4.标识符的命名规范:i.最好不要一下划线(_)或者美元($)符号开头ii.如果有多个单词组成,那么每个字符的首字符都大写。
例如:class Student{}class HelloWorld{}iii.如果标识符是方法名或者变量名:首字母应该小写;如果有多个单词组成,那么从第二个单词开始,首字母大写。
例如:String name;//用户名int stuAge;//学生的年龄iv.标识符最好有一定的意义。
int 整数=1;v.如果是常量名,那么全部字母都大写。
final double PI=3.1415926;关键字-date:0908111.什么叫关键字?具有特殊意义的一些单词。
2.举例说出几个关键字byte short int long float double char booleanpublic private protectedvoidreturntrue falsestatic final abstractif elseswitch caseforwhiledotry catchcontinuebreak数据类型的转换-date:0908111.基本数据类型可以相互转换(除boolean)2.可以将低精度的数据类型直接赋值给高精度的数据类型int i=1;short s=1;i=s;//可以自动进行转换3.当把高精度的数据类型赋值给低精度的数据类型时,必须强制类型转换。
Java基础知识总结写代码:1,明确需求。
我要做什么?2,分析思路。
我要怎么做?1,2,3。
3,确定步骤。
每一个思路部分用到哪些语句,方法,和对象。
4,代码实现。
用具体的java语言代码把思路体现出来。
学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。
demo4,该技术什么时候用?test。
----------------------------------------------------------------------------------------------- 一:java概述:1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;Java的三种技术架构:JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。
2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。
3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
环境变量的配置:1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdkpath=%JAVA_HOME%\bin2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。
Java基础知识总结(超级经典)写代码:1,明确需求。
我要做什么?2,分析思路。
我要怎么做?1,2,3。
3,确定步骤。
每一个思路部分用到哪些语句,方法,和对象。
4,代码实现。
用具体的java语言代码把思路体现出来。
学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。
demo4,该技术什么时候用?test。
----------------------------------------------------------------------------------------------- 一:java概述:1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;Java的三种技术架构:JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。
2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。
3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
环境变量的配置:1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdkpath=%JAVA_HOME%\bin2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。
Java基础知识总结Java基础知识总结写代码:1,明确需求。
我要做什么?2,分析思路。
我要怎么做?1,2,3。
3,确定步骤。
每一个思路部分用到哪些语句,方法,和对象。
4,代码实现。
用具体的java语言代码把思路体现出来。
学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。
demo4,该技术什么时候用?test。
-----------------------------------------------------------------------------------------------一:java概述:1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;Java的三种技术架构:JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。
2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。
3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
环境变量的配置:1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdkpath=%JAVA_HOME%\bin2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。
Java基础知识笔记(含代码举例)⽂章同步:知乎:简书:博客园:⼀、注释、标识符、关键字注释平时我们写的代码量较⼩时,可以看的懂。
但是⼀旦结构复杂起来,我们就需要注释了注释平不会被执⾏,是给我们程序员看的书写注释是⼀个⾮常好的习惯java中有三种注释:单⾏注释 // 注释部分多⾏注释 /* 注释部分*/⽂档注释//有趣的代码注释:/*_(\_/),((((^`\(((( (6 \,((((( , \,,,_ ,((((( /"._ ,`,((((\\ ,... ,(((( / `-.-'))) ;' `"'"'""(((( (((( / ((( \)) | |(( | . ' |)) \ _ ' `t ,.')( | y;- -,-""'"-.\ \/) / ./ ) / `\ \|./ ( ( / /'|| \\ //'||| \\ _//'|||| )) |_/ ||\_\ |_/ ||`'" \_\`'"*/关键字abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。
Java笔记4(布局管理器、常用组件、qq聊天界面、记事本)文件结构Java代码布局管理器Demo8_1.java package com.test1; import javax.swing.JButton; import javax.swing.JFrame; public classDemo8_1 extends JFrame //继承JFrame { /*** @param args */ public static voidmain(String[] args) { Demo8_1 demo8_1=new Demo8_1(); } //把需要的组件定义在这里JButton jb1=null; //定义一个按钮//构造函数public Demo8_1() { ////JFrame是一个顶层容器类(可以添加其它swing组件的类) //JFrame jf=new JFrame(); //给窗体设置标题this.setTitle("Hello world"); //设置大小,按像素this.setSize(200, 200); //设置初始位置this.setLocation(100,200); //创建一个按钮jb1=new JButton("我是一个按钮!"); //添加JButton组件this.add(jb1); //设置当关闭窗口时,保证JVM也退出this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //显示this.setVisible(true); } } 常用组件常Demo8_2.java /* * BorderLayout演示*1.继承JFrame *2.定义组件*3.创建组件(构造函数) *4.添加组件*5.对窗体设置*6.显示窗体*/ package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_2 extends JFrame{ /** * @param args */ //定义组件JButton jb1,jb2,jb3,jb4,jb5; public static void main(String[] args) { // TODOAuto-generated method stub Demo8_2demo8_2=new Demo8_2(); } publicDemo8_2() { //创建组件jb1=new JButton("中部"); jb2=new JButton("北部"); jb3=new JButton("南部"); jb4=new JButton("东部");jb5=new JButton("西部"); //添加各个组件this.add(jb1,BorderLayout.CENTER);this.add(jb2,BorderLayout.NORTH);this.add(jb3,BorderLayout.SOUTH);this.add(jb4,BorderLayout.EAST);this.add(jb5,BorderLayout.WEST); //设置窗体属性this.setTitle("边界布局的案例");this.setSize(300,200); this.setLocation(200,200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //显示窗体this.setVisible(true); } }Demo8_3.java /* * 功能:流式:流式布局案例*/ package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_3 extends JFrame{ /** * @param args */ //定义需要的组件JButton jb1,jb2,jb3,jb4,jb5,jb6;public static void main(String[] args) { // TODOAuto-generated method stub Demo8_3 demo8_3=new Demo8_3(); } //构造函数public Demo8_3() { //创建组件jb1=new JButton("关羽"); jb1.setSize(100, 100); jb2=new JButton("张飞"); jb3=new JButton("赵云");jb4=new JButton("马超"); jb5=new JButton("黄忠");jb6=new JButton("魏延"); //添加组件this.add(jb1); this.add(jb2); this.add(jb3);this.add(jb4); this.add(jb5); this.add(jb6);//设置布局管理器this.setLayout(newFlowLayout(FlowLayout.LEFT)); //设置窗体属性this.setTitle("流式布局案例"); this.setSize(350,200); this.setLocation(200,200); //禁止用户改变窗体大小this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //显示this.setVisible(true); } }swing编程实战Demo8_4.java /* * 风格布局*/ package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_4 extends JFrame{ int size=9; //定义组件JButton jbs[]=new JButton[size]; public static void main(String[] args) { // TODO Auto-generated method stub //创建实例Demo8_4demo8_4=new Demo8_4(); } //构造函数public Demo8_4() { //创建组件for(inti=0;ijava /* * 多种布局管理器的使用*/ package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_5 extends JFrame { //定义组件JPanel jp1,jp2; JButton jb1,jb2,jb3,jb4,jb5,jb6; public static void main(String[] args) { // TODO Auto-generated method stub Demo8_5 demo8_5=new Demo8_5(); }//构造函数public Demo8_5() { //创建组件//JPanel布局默认是FlowLayout jp1=new JPanel();jp2=new JPanel(); jb1=new JButton("西瓜");jb2=new JButton("苹果"); jb3=new JButton("荔枝");jb4=new JButton("葡萄"); jb5=new JButton("桔子");jb6=new JButton("香蕉"); //设置布局//添加jp1.add(jb1); jp1.add(jb2); jp2.add(jb3);jp2.add(jb4); jp2.add(jb5); //把Panel 加入JFrame this.add(jp1,BorderLayout.NORTH); this.add(jb6,BorderLayout.CENTER);this.add(jp2,BorderLayout.SOUTH);this.setSize(300,150); this.setLocation(200,200); this.setVisible(true); } } Demo8_6.java package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_6 extends JFrame{ /** * @param args */ //定义组件JPanel jp1,jp2,jp3; //三个子面板JLabeljlb1,jlb2; //标签JButton jb1,jb2; //两个按钮JTextField jtf1,jpf1; //两个文本输入框public static void main(String[] args) { // TODOAuto-generated method stub Demo8_6demo8_6=new Demo8_6(); } //构造函数public Demo8_6() { jp1=new JPanel();jp2=new JPanel(); jp3=new JPanel();jlb1=new JLabel("用户名:"); jlb2=new JLabel("密码:"); jb1=new JButton("登录"); jb2=new JButton("取消"); jtf1=new JTextField(10); //用户名文本框jpf1=new JPasswordField(10); //密码文本框//设置布局管理this.setLayout(new GridLayout(3,1));//加入各个组件jp1.add(jlb1); jp1.add(jtf1);jp2.add(jlb2); jp2.add(jpf1); jp3.add(jb1);jp3.add(jb2); //加入到JFrame this.add(jp1); this.add(jp2); this.add(jp3); this.setTitle("会员管理系统"); this.setSize(250,130);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } } Demo8_7.java/* * 复选框或单选框的案例*/ package com.test1; import java.awt.*; importjavax.swing.*; public class Demo8_7 extends JFrame{ //定义JPanel jp1,jp2,jp3;JLabel jl1,jl2; JButton jb1,jb2; JCheckBoxjcb1,jcb2,jcb3; JRadioButton jrb1,jrb2;ButtonGroup bg; public static void main(String[] args) { // TODO Auto-generated method stubDemo8_7 dmeo8_7=new Demo8_7(); } //构造函数public Demo8_7() { //创建组件jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jl1=new JLabel("你喜欢的运动:");jl2=new JLabel("你的性别:"); jb1=new JButton("注册用户"); jb2=new JButton("取消注册");jcb1=new JCheckBox("足球"); jcb2=newJCheckBox("篮球"); jcb3=new JCheckBox("网球");jrb1=new JRadioButton("男"); jrb2=new JRadioButton("女"); //一定要把jrb1,jrb2放入到一个ButtonGroup ButtonGroup bg=new ButtonGroup(); bg.add(jrb1); bg.add(jrb2);//设置布局管理器this.setLayout(new GridLayout(3,1)); //添加组件jp1.add(jl1); jp1.add(jcb1);jp1.add(jcb2); jp1.add(jcb3); jp2.add(jl2);jp2.add(jrb1); jp2.add(jrb2); jp3.add(jb1);jp3.add(jb2); this.add(jp1); this.add(jp2); this.add(jp3); this.setSize(300,150);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } } Demo8_8.java/* * JCombobox/JList/JScrollPane */package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_8 extends JFrame { //定义JPanel jp1,jp2;JLabel jl1,jl2; JComboBox jcb1; JList jlist; JScrollPane jsp; public static void main(String[] args) { // TODO Auto-generated method stubDemo8_8 demo8_8=new Demo8_8(); } //构造函数public Demo8_8() { jp1=new JPanel(); jp2=new JPanel(); jl1=new JLabel("你的籍贯:"); jl2=new JLabel("旅游地点:"); String []jg={"北京","上海","天津","火星"}; jcb1=new JComboBox(jg); String []dd={"九寨沟","故宫","长城","兵马俑"}; jlist=new JList(dd);jlist.setVisibleRowCount(2);//设置你希望显示多少个选项jsp=new JScrollPane(jlist); //设置布局this.setLayout(new GridLayout(3,1)); //添加组件jp1.add(jl1); //加到面板1当中jp1.add(jcb1);jp2.add(jl2); //加到面板2当中jp2.add(jsp);this.add(jp1); //把面板加入到窗体当中this.add(jp2); //设置窗体属性this.setSize(200,180);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } } Demo8_9.java /* * 词霸*/ package com.test1;import java.awt.*; import javax.swing.*;public class Demo8_9 extends JFrame{ //定义组件JSplitPane jsp; JList jList; JLabel jl1; public static void main(String[] args) { // TODOAuto-generated method stub Demo8_9demo8_9=new Demo8_9(); } publicDemo8_9() { //创建组件String []words={"迈克尔-杰克逊","中国","导游"}; jList=new JList(words); jl1=new JLabel(new ImageIcon("images/迈克尔-杰克逊2.jpg")); //拆分窗格jsp=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,jList,jl1);//设置窗格可以伸缩jsp.setOneTouchExpandable(true); //设置布局管理器//添加组件this.add(jsp);//设置大小this.setSize(550,632);this.setLocation(200,200);this.setVisible(true); } }Demo8_10.java /* * qq聊天器*/package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_10 extends JFrame{ JTextArea jta=null; JScrollPane jsp=null; //滚动面板JPanel jp1=null;JComboBox jcb=null; JTextField jtf=null; JButton jb=null; public static void main(String[] args) { // TODO Auto-generated method stubDemo8_10 demo8_10=new Demo8_10(); }//构造public Demo8_10() { jta=new JTextArea(); jsp=new JScrollPane(jta); //为文本域添加滚动条jp1=new JPanel(); String []chatter={"布什","拉登"}; jcb=new JComboBox(chatter);jtf=new JTextField(10); jb=new JButton("发送");//设置布局//添加组件jp1.add(jcb);jp1.add(jtf); jp1.add(jb); //加入JFrame this.add(jsp); this.add(jp1,BorderLayout.SOUTH);//设置窗体属性this.setSize(300,200);this.setIconImage((newImageIcon("images\\rowin2.gif")).getImage());this.setTitle("简单QQ");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } }Demo8_11.java /* * qq登录界面制作*/ package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_11 extends JFrame{ //北部区域JLabel jl1; //南部区域JButton jb1,jb2,jb3; JPanel jp1;//中部区域JTabbedPane jtp;//选项卡窗格JPanel jp2,jp3,jp4;//三个子面板JLabeljl2,jl3,jl4,jl5; //号码输入文本框JTextField jtf; //密码JPasswordField jpf; //清除号码button JButton jb4; //隐身登录,记住密码JCheckBoxjcb1,jcb2; public Demo8_11() { //创建组件jl2=new JLabel("QQ号码",JLabel.CENTER);jl3=new JLabel("QQ密码",JLabel.CENTER); jl4=new JLabel("忘记密码",JLabel.CENTER);jl4.setFont(new Font("宋体",Font.PLAIN,16));//设置字体样式jl4.setForeground(Color.BLUE);//设置字体颜色jl5=new JLabel("申请密码保护");jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_ CURSOR)); //输入号码框jtf=new JTextField(); //输入密码框jpf=new JPasswordField(); jb4=new JButton(newImageIcon("images\\清除号码.jpg")); //复选框jcb1=new JCheckBox("隐身登录"); jcb2=new JCheckBox("记住密码"); //北部区域jl1=new JLabel(new ImageIcon("images\\老虎.jpg"));//南部区域jp1=new JPanel(); jb1=newJButton(new ImageIcon("images\\登录.gif")); jb2=new JButton(new ImageIcon("images\\取消.gif")); jb3=new JButton(new ImageIcon("images\\向导.gif")); //中部区域jtp=new JTabbedPane(); jp2=new JPanel(); jp3=new JPanel();jp3.setBackground(Color.RED);//给面板设置背景颜色jp4=new JPanel(); jp4.setBackground(newColor(0,0,255));//用另一种方法设置背景颜色//将面板添加到选项卡窗格上jtp.add("QQ号码",jp2); //第一个参数代表选项卡的名称,第二个参数代表面板jtp.add("手机号码",jp3); jtp.add("电子邮箱",jp4);//设置布局jp2.setLayout(new GridLayout(3,3));//添加组件//南部jp1.add(jb1); jp1.add(jb2); jp1.add(jb3); //中部jp2.add(jl2);//QQ号码jp2.add(jtf);//号码框jp2.add(jb4);//清除号码按钮jp2.add(jl3);//密码jp2.add(jpf);//密码框jp2.add(jcb1);//记住密码jp2.add(jcb2);//隐身登录jp2.add(jl5);//申请密码保护this.add(jp1,BorderLayout.SOUTH);//加入南部子面板this.add(jl1,BorderLayout.NORTH);//加入北部子面板this.add(jtp,BorderLayout.CENTER);//把选项卡加入中部//展现组件ImageIcon icon=newImageIcon("images\\rowin.gif");this.setIconImage(icon.getImage());this.setSize(350,240); this.setLocation(300,400); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { newDemo8_11(); } } Demo8_12.java /* * 记事本界面*/ package com.test1;import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Demo8_12 extends JFrame{ JMenuBar jmb;//菜单条组件JMenu menu1,menu2,menu3,menu4,menu5;JMenuItem item2,item3,item4,item5,item6,item7;JMenu xinjian;//二级菜单JMenuItem file,project; JTextArea jta; //文本输入区域//工具条JToolBar jtb; JButton jb1,jb2,jb3,jb4,jb5,jb6;public Demo8_12() { //创建组件jtb=new JToolBar(); jb1=new JButton(newImageIcon("images\\new.jpg")); jb1.setToolTipText("新建");//设置提示信息jb2=new JButton(new ImageIcon("images\\open.jpg")); jb2.setToolTipText("打开"); jb3=new JButton(newImageIcon("images\\save.jpg")); jb4=newJButton(new ImageIcon("images\\copy.jpg"));jb5=new JButton(new ImageIcon("images\\cut.jpg"));jb6=new JButton(new ImageIcon("images\\paste.jpg")); jmb=new JMenuBar(); menu1=new JMenu("文件(F)"); menu1.setMnemonic('F');//设置助记符menu2=new JMenu("编辑(E)");menu2.setMnemonic('E'); menu3=new JMenu("格式(O)"); menu3.setMnemonic('O'); menu4=new JMenu("查看(V)"); menu4.setMnemonic('V');menu5=new JMenu("帮助(H)");menu5.setMnemonic('H'); //item1=new JMenuItem("新建"); xinjian=new JMenu("新建");file=new JMenuItem("文件"); project=new JMenuItem("工程"); item2=new JMenuItem("打开",new ImageIcon("new.gif")); item3=new JMenuItem("保存(s)"); item3.setMnemonic('s');//给菜单添加快捷方式item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.V K_S,InputEvent.ALT_MASK)); item4=new JMenuItem("另存为"); item5=new JMenuItem("页面设置"); item6=new JMenuItem("打印"); item7=new JMenuItem("退出"); jta=new JTextArea();//设置布局//添加组件//将按钮添加到工具条上jtb.add(jb1); jtb.add(jb2); jtb.add(jb3); jtb.add(jb4); jtb.add(jb5); jtb.add(jb6);//将菜单项添加到菜单上xinjian.add(file);xinjian.add(project); menu1.add(xinjian);menu2.add(item2); menu1.add(item3);menu1.add(item4); menu1.addSeparator();//添加分割线menu1.add(item5); menu1.add(item6);menu1.addSeparator(); menu1.add(item7);//将菜单添加到菜单条上jmb.add(menu1);jmb.add(menu2); jmb.add(menu3);jmb.add(menu4); jmb.add(menu5); //将菜单条添加到窗体上this.setJMenuBar(jmb);//将工具条添加到窗体上this.add(jtb,BorderLayout.NORTH); //给文本域添加滚动条JScrollPane jsp=new JScrollPane(jta); jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SC ROLLBAR_AS_NEEDED); this.add(jsp); //展现this.setTitle("记事本"); ImageIcon icon=new ImageIcon("images\\rowin.gif");this.setIconImage(icon.getImage());//设置窗体图标this.setSize(500,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { Demo8_12 demo8_12=new Demo8_12(); } }。
Java学习笔记目录一、Java技术基础 .........................................................................................................................1.1编程语言...............................................................................................................................1.2 Java的特点...........................................................................................................................1.3 Java开发环境.......................................................................................................................1.4 Java开发环境配置...............................................................................................................1.5 Linux命令与相关知识 ........................................................................................................1.6 Eclipse/Myeclipse程序结构 ................................................................................................二、Java语言基础 .........................................................................................................................2.1基础语言要素.......................................................................................................................2.2八种基本数据类型...............................................................................................................2.3常量和变量...........................................................................................................................2.4运算符与表达式...................................................................................................................2.5编程风格...............................................................................................................................2.6流程控制语句.......................................................................................................................2.7数组.......................................................................................................................................2.8字符串...................................................................................................................................2.9方法三要素...........................................................................................................................2.10插入排序.............................................................................................................................2.11冒泡排序.............................................................................................................................2.12冒泡排序:轻气泡上浮的方式.........................................................................................2.13二分法查找.........................................................................................................................2.14 Java系统API方法调用 ....................................................................................................2.15二进制基础.........................................................................................................................2.16 Java基础其他注意事项.....................................................................................................三、面向对象 .................................................................................................................................3.1类...........................................................................................................................................3.2对象.......................................................................................................................................3.3包...........................................................................................................................................3.4方法及其调用.......................................................................................................................3.5引用.......................................................................................................................................3.6访问控制(封装)...............................................................................................................3.7构造器...................................................................................................................................3.8 super()、super.和this()、this........................................................................................3.9重载和重写...........................................................................................................................3.10继承.....................................................................................................................................3.11 static ....................................................................................................................................3.12 final .....................................................................................................................................3.14抽象类.................................................................................................................................3.15接口.....................................................................................................................................3.16内部类.................................................................................................................................3.17匿名类.................................................................................................................................3.18二维数组和对象数组.........................................................................................................3.19其他注意事项.....................................................................................................................四、Java SE核心I .........................................................................................................................4.1 Object类...............................................................................................................................4.2 String类................................................................................................................................4.3 StringUtils类 ........................................................................................................................4.4 StringBuilder类....................................................................................................................4.5正则表达式...........................................................................................................................4.6 Date类..................................................................................................................................4.7 Calendar类 ...........................................................................................................................4.8 SimpleDateFormat类 ...........................................................................................................4.9 DateFormat类.......................................................................................................................4.10包装类.................................................................................................................................4.11 BigDecimal类 ....................................................................................................................4.12 BigInteger类.......................................................................................................................4.13 Collection集合框架 ...........................................................................................................4.14 List集合的实现类ArrayList和LinkedList ......................................................................4.15 Iterator迭代器....................................................................................................................4.16泛型.....................................................................................................................................4.17增强型for循环..................................................................................................................4.18 List高级-数据结构:Queue队列 ..................................................................................4.19 List高级-数据结构:Deque栈 ......................................................................................4.20 Set集合的实现类HashSet ................................................................................................4.21 Map集合的实现类HashMap ............................................................................................4.22单例模式和模版方法模式.................................................................................................五、Java SE核心II ........................................................................................................................5.1 Java异常处理机制...............................................................................................................5.2 File文件类 ...........................................................................................................................5.3 RandomAccessFile类...........................................................................................................5.4基本流:FIS和FOS ............................................................................................................5.5缓冲字节高级流:BIS和BOS ...........................................................................................5.6基本数据类型高级流:DIS和DOS ..................................................................................5.7字符高级流:ISR和OSW ..................................................................................................5.8缓冲字符高级流:BR和BW .............................................................................................5.9文件字符高级流:FR和FW ..............................................................................................5.10 PrintWriter ...........................................................................................................................5.11对象序列化.........................................................................................................................5.12 Thread线程类及多线程 ....................................................................................................5.13 Socket网络编程.................................................................................................................5.15双缓冲队列.........................................................................................................................Java技术基础1.1编程语言机器语言:0 1 在硬件直接执行汇编语言:助记符高级语言:(Java运行比C/C++慢)1)面向过程的高级语言:程序设计的基本单位为函数,如:C/C++语言。
JAVA 学习路线第一天1:计算机概述(了解)22:键盘功能键的认识和快捷键(掌握)2 3:常见的DOS命令(掌握)34:Java语言概述(了解)35:JDK,JRE,JVM的作用及关系(掌握) 3 6:JDK的下载,安装,卸载(掌握)47:第一个程序:HelloWorld案例(掌握)4 8:常见的问题(掌握)59:path环境变量(掌握)510:classpath环境变量(理解)5第二天1:关键字(掌握)62:标识符(掌握)63:注释(掌握)74:常量(掌握)75:进制转换(了解)76:变量(掌握)87:数据类型(掌握)88:数据类型转换(掌握)8第三天1:运算符(掌握)102:键盘录入(掌握)113:流程控制语句124:if语句(掌握)12第四天1:switch语句(掌握)142:循环语句(掌握)153:控制跳转语句(掌握)17第五天1:方法(掌握)182:数组(掌握)19第六天1:二维数组(理解)232:两个思考题(理解)233:面向对象(掌握)23第七天1:成员变量和局部变量的区别(理解)252:类作为形式参数的问题?(理解)253:匿名对象(理解)254:封装(理解)255:private关键字(掌握)256:this关键字(掌握)267:构造方法(掌握)268:代码:Student s = new Student();做了哪些事情?(理解)27 9:面向对象的练习题(掌握)27第八天1:如何制作帮助文档(了解)282:通过JDK提供的API学习了Math类(掌握)283:代码块(理解)284:继承(掌握)28第九天1:final关键字(掌握)302:多态(掌握)303:抽象类(掌握)324:接口(掌握)33第十天1:形式参数和返回值的问题(理解)352:包(理解)353:导包(掌握)354:权限修饰符(掌握)365:常见的修饰符(理解)366:内部类(理解)37第十一天1:Eclipse的概述使用(掌握)402:API的概述(了解)403:Object类(掌握)40第十二天1:Scanner的使用(了解)412:String类的概述和使用(掌握)41第十三天1:StringBuffer(掌握)442:数组高级以及Arrays(掌握)443:Integer(掌握)464:Character(了解)47第十四天1:正则表达式(理解)472:Math(掌握)493:Random(理解)494:System(掌握)495:BigInteger(理解)506:BigDecimal(理解)507:Date/DateFormat(掌握)508:Calendar(掌握)51第十五天1:对象数组(掌握)522:集合(Collection)(掌握)523:集合(List)(掌握)55第十六天1:List的子类(掌握)572:泛型(掌握)583:增强for循环(掌握)584:静态导入(了解)585:可变参数(掌握)596:练习(掌握)597:要掌握的代码59第十七天1:登录注册案例(理解)602:Set集合(理解)603:Collection集合总结(掌握)604:针对Collection集合我们到底使用谁呢?(掌握)61 5:在集合中常见的数据结构(掌握)61第十八天1:Map(掌握)622:Collections(理解)63第十九天1:异常(理解)642:File(掌握)65第二十天1:递归(理解)662:IO流(掌握)663:自学字符流第二十一天1:字符流(掌握)69第二十一天1:字符流(掌握)692:IO流小结(掌握)703:案例(理解练习一遍)71第二十二天1:登录注册IO版本案例(掌握)722:数据操作流(操作基本类型数据的流)(理解)72 3:内存操作流(理解)724:打印流(掌握)725:标准输入输出流(理解)736:随机访问流(理解)737:合并流(理解)738:序列化流(理解)739:Properties(理解)7410:NIO(了解)74第二十三天1:多线程(理解)75第二十四天1:多线程(理解)772:设计模式(理解)77第二十五天1:如何让Netbeans的东西Eclipse能访问79 2:GUI(了解)79第二十六天1:网络编程(理解)80第二十七天1:反射(理解)822:设计模式823:JDK新特性82JA V A学习总结姓名:陈鑫第一天1:计算机概述(了解)(1)计算机(2)计算机硬件(3)计算机软件系统软件:window,linux,mac应用软件:qq,yy,飞秋(4)软件开发(理解)软件:是由数据和指令组成的。
计算机java实习日记【篇一:计算机毕业实习日记34篇】实习日记一20010-4-1星期四实习的第一天,感觉心里空空的,毕竟昔日在学校的作息时间,一下子被工作所取代,还真有点不适应。
其实在此之前我也作好了进入社会的准备,以前经历过一次毕业,现在总比第一次毕业时“无所适从”的感觉要好很多,心态也放得更为平和。
如果真要说点与众不同的话,那就是明显感觉到:多了一些信心与实在。
二2010-4-2星期五今天下班后回宿舍上机调试程序,一个java网站,用tomcat作服务器,在被浏览器加载的时候总是无法显示出来,页面提示出错信息:500错误。
到服务器日志查找原因,有一个“数据加载失败”的提示。
数据库用的是sql server2000,原以为是tomcat配置文件的问题,到网上查了很多相关资料,改了又改一直没搞定,头都大了,一直到12点才郁闷的关机睡觉!三2010-4-5星期一工作也两三天了,员工也已熟悉,可惜他们都不是编程高手,要不我就可以直接向他们问一些我在做网站时遇到的难题了。
唉,谁叫我找一个与专业不怎么相干的单位来实习呢!可说归说,事还得做:与客户交谈,打电话询问相关事宜,遇到好心的客户还好,不会刁难你,要是来了一个挑三检四的就不好应付了,至少你得耍点小聪明,当然不能惹客户不高兴,要不过后会接到老板的“呼叫”的。
其实最简单的对付办法也很简单:你只管顺着客户的意思,点头即可!四2010-4-6星期二最近到网上找了些视频资料,看后很过瘾,可看归看,一动手写代码就伤神了。
忘说内容了,其实看的就几个与java编程相关的开源框架(struts+spring+hibernate)而已,不过涉及到的东西就多了,开发平台用的是eclipse+myeclipse,这个还好应付,装上设一下环境变量就搞定,跟jdk差不多。
难的是在这之上的插件的应用,要知道开源的东西特多,很多其实多差不多,但你却不得不花时间去了解,而且版本的兼容性问题有时会让你不知从哪处理是好。
动力节点 java笔记English Answer:## Java Notes for Spring Data JPA.### Introduction.Spring Data JPA is a powerful framework that provides a simplified and consistent access to relational data. It's a part of the Spring family of frameworks and builds on top of Hibernate, a popular ORM (Object-Relational Mapping) library.### Benefits of Spring Data JPA.Using Spring Data JPA offers several advantages:Abstraction and Simplification: It simplifies data access operations, eliminating the need for complex SQL queries and boilerplate code.Improved Performance: By leveraging Hibernate's caching and optimization techniques, Spring Data JPA enhances data retrieval efficiency.Consistency: Enforces consistent data access patterns and reduces the risk of data inconsistencies.Support for Transactions: Provides transparent transaction management, ensuring data integrity and atomicity.Declarative Configuration: Allows for configuration through annotations, simplifying database mapping and reducing code complexity.### Setting Up Spring Data JPA.To use Spring Data JPA, you'll need:Java Development Kit (JDK): Version 8 or higher.Maven or Gradle: Build tools for adding Spring Data JPA dependencies.JPA Provider: Hibernate or EclipseLink.Add the following dependencies to your project'spom.xml (Maven) or build.gradle (Gradle):xml.<!-Maven -->。
1.前言 (4)1.1.JA V A特点 (4)1.2.运行原理 (4)1.3.JA V A目录 (4)2.一.基础知识 (4)2.1.配置环境 (4)2.2.Java中基本概念 (5)3.二.定义,关键字和类型 (5)3.1.注释的三种形式 (5)3.2.Java代码中的“;”、“{}”、“” (5)3.3.标识符 (5)3.4.数据类型 (6)3.5.命名规则 (6)4.三.表达式和控制流 (6)4.1.变量和作用域 (6)4.2.操作符 (7)4.3.数字类型之间的转换 (7)4.4.强制类型转换 (8)4.5.转换的二种类型 (8)4.6.控制流 (8)4.7.循环语句 (8)5.四.数组 (9)5.1.声明数组 (9)5.2.创建数组 (9)5.3.初始化数组 (10)5.4.多维数组 (10)5.5.数组拷贝 (10)6.五.对象和类 (11)6.1.面向对象与面向过程 (11)6.2.对象的概念 (12)6.3.成员变量和局部变量 (12)6.4.成员方法 (12)6.5.This关键字 (13)6.6.访问控制符 (13)6.7.构造方法 (13)6.8.数据和方法的隐藏―――封装 (14)6.9.方法的重载 (15)7.六.高级语言特性 (15)7.1.封装(encapsulation) (15)7.2.继承(inherit) (16)7.2.1.JA V A继承特点 (16)7.2.2.父类(SuperClass)和子类(SubClass)的关系 (17)7.2.3.系统构造一个对象的顺序 (17)7.3.多态(polymorphism) (18)7.3.1.方法的覆盖(overridding) (18)7.3.2.多态的分类 (18)7.3.3.运行时多态的三原则 (19)7.3.4.关系运算符:instanceof (20)7.4.静态变量,方法和类 (20)7.5.Singleton模式 (22)7.6.final关键字 (22)7.6.1.final变量不能被改变; (22)7.6.2.final方法不能被改写; (23)7.6.3.final类不能被继承; (23)7.6.4.String 类 (23)7.7.抽象类 (24)7.8.接口(模板方法模式) (25)7.9.Object 类 (27)7.10.封装类 (28)7.11.内部类 (29)7.11.1.内部类的分类 (29)7.11.2.成员内部类 (29)7.11.3.局部内部类 (30)7.11.4.静态内部类 (30)7.11.5.匿名内部类 (31)7.12.集合 (31)7.12.1.集合接口类层次 (32)7.12.2.集合类层次 (33)7.12.3.五个最常用的集合类之间的区别和联系 (33)7.12.4.比较 (35)7.13.反射 (37)8.七.异常 (37)8.1.异常的基本概念 (37)8.2.捕获异常 (38)8.3.处理异常 (38)8.4.捕捉多个异常 (38)8.5.finally 声明 (38)8.6.异常调用栈 (39)8.7.异常层次 (39)8.8.一些未检查的异常 (39)8.9.写你自己的异常 (39)8.10.抛出你自己的异常 (40)9.八.图形用户接口 (40)10.九.AWT(Abstract Window Toolkit)事件模型 (41)11.十.The AWT Component Library (41)12.十一.JFC(Java Foundation Classes) (41)13.十二.Applets (41)14.十三.线程Thread (41)14.1.线程原理 (41)14.2.线程实现的两种形式 (42)14.3.线程的生命周期 (43)14.4.Thread的方法 (43)14.5.共享数据的并发处理 (44)14.6.使用互斥锁的注意事项 (44)15.十四.标准I/O流与文件 (46)15.1.对文件的操作 (46)15.2.处理跨平台性 (46)15.3.对象的序列化接口 (47)15.4.I/O流基础 (47)15.5.流的分类 (47)15.6.I/O输入输出 (48)16.十五.网络编程 (52)16.1.网络基础知识 (52)16.2.TCP Socket (54)16.2.1.建立TCP服务器端 (54)16.2.2.建立TCP客户端 (55)16.3.建立URL连接 (55)16.4.UDP socket (58)16.4.1.建立UDP 发送端 (58)16.4.2.建立UDP 接受端 (59)17.java5.0的新特性 (60)17.1.泛型 (60)17.1.1.说明 (60)17.1.2.用法 (61)17.1.3.泛型的通配符"?" (62)17.1.4.泛型方法的定义 (63)17.1.5.泛型类的定义 (64)17.1.6.泛型与异常 (64)17.1.7.泛型的一些局限型 (66)17.2.增强的for循环 (66)17.3.自动装箱和自动拆箱 (69)17.3.1.在基本数据类型和封装类之间的自动转换 (69)17.4.类型安全的枚举 (70)17.5.静态引入 (71)17.6.C风格的格式化输出 (71)17.7.Building Strings(StringBuilder类) (72)17.8.可变长的参数 (72)17.9.JA V A5.0 的注释(Annotation) (72)17.10.Callable 和Future接口 (73)JA V A数据库连接:JDBC1.前言1.1. JAVA特点1) 简单(Java语法是C++语法的一个“纯净”版本);2) 可移植性(一次编译到处运行)3) 面向对象4) 分布式(Java把打开套接字连接等繁琐的网络任务变得非常容易)5) 健壮性(Java编译器会检查出很多其他语言在运行时刻才显示出来的错误;Java采用的指针模型可以消除重写内存和数据崩溃的可能)6) 多线程(多线程编程的简单性是Java成为流行的服务器端开发语言的主要原因之一)7)安全(用Java可以构建防病毒和防篡改的系统)9) 动态(Java可随意增加新的方法以及实例变量,而客户端却不需做任何的更改)10)体系结构中立(字节码与计算机体系结构无关,只要存在运行时系统,可在多种处理器上执行)1.2. 运行原理先编译*.java文件――――>*.class文件运行*.class ――加载――> JVM(JA V A虚拟机)1.3. JAVA目录JRE―――――――运行环境SRC――――――-类库BIN―――――――应用程序2.一·基础知识2.1. 配置环境LINUX系统(修改环境配置文件)1 打开shell2 vi .bash_profile3 JA V A_HOME=JA V A目录路径4 PATH=$JA V A_HOME/bin:其他路径5 CLASSPATH=.6 export JA V A_HOME CLASSPATHWindows系统我的电脑属性―――>环境变量设置环境变量:JA V A_HOME=路径PATH = %PATH%;c:\j2sdk1.4.2_05\bin;CLASSPATH = .;2.2. Java中基本概念1) 源文件在最顶层只包括一个public类型的类/接口,文件名与类/接口名同并以.java作为文件后缀。
1. BasicLinux 操作1)Linux 是模仿UNIX的操作系统,是山寨版的Unix2)Linux 命令pwd 打印当前工作目录cd 改变工作目录ls 显示目录的内容,默认显示当前目录内容mkdir 创建目录rmcpcatmv 源文件目标文件改名或者移动文件、文件夹1)目标文件如果是新文件/文件夹就进行改名操作2)如果目标是已经存在的文件夹,就发送移动操作3)源文件必须存在,否则有错误!more 分屏显示结果grep 根据条件(正则表达式)在结果中过滤telnet 远程登录命令telnet 192.168.0.20user: openlabpwd: open123bash 切换Shell 为ba Shellexit 离开命令/sbin/ifconfig 查看当前电脑的IP地址ssh username@ipssh soft01@192.168.23.124 登录到另外一台电脑192.168.23.124 echo| 管道符合,作用:将第一个命令的输出,作为第二个命令的输入如:ls /etc|morels /etc|grep pass在第一个命令结果中匹配,包含pass的行留下来Java 应用开发1)编写Java 源文件(文本文件)(记事本,Eclipse)2)编译为.class 字节码文件3)使用Java 虚拟机执行.class字节码文件计算机只能处理2进制的数据和指令java源文件是人能够看懂的程序脚本经过变编译器编译为计算机能够处理的2进制数据和指令在进一步有计算机执行和处理!计算机只能处理数据!任何软件的功能最终都要转换为数据计算!JDK (文件夹/opt/jdk 也可能是/opt/jdk1.6.0_01)|-- bin (java javac jar rmic jps native2ascii 等命令)| 开发工具命令|-- lib (tools.jar) 是开发工具命令的实际实现|-- jre java 运行环境|-- bin java_vm java 的虚拟机|-- lib|-- rt.jar 是Java系统API库、系统类库|-- java.util.Scannerecho 命令: 回显如:echo abc 就会在屏幕上显示abcPA TH 是Linux操作系统的环境变量$PA TH 是读取变量的值echo $PA TH 命令就是将$PA TH 取回的变量值显示到屏幕简单说就是看看PA TH变量的值PA TH 变量的作用: 操作系统可执行命令的搜索路径,操作系统在执行命令时候,逐一搜索PATH指定的路径,找到命令执行如果找不到就报错误:command not foundexport 导出命令,可以用来修改环境变量export PA TH=/bin在终端窗口中的环境变量设置,只在当前窗口中生效。
java guide 自己的笔记这只是一个基本的大纲,涵盖了Java编程的一些核心概念。
**Java编程指南笔记****1. 基础语法*** **变量与数据类型**: 基本的数据类型(如int, double, char等)和变量的声明与初始化。
* **运算符**: 基本的算术运算符(如+,-,*,/),比较运算符和逻辑运算符。
* **控制结构**: if-else语句,switch语句,循环(for,while)。
* **函数/方法**: 函数的定义,参数传递(按值传递和按引用传递),返回值。
**2. 面向对象编程*** **类与对象**: 类的定义,对象的创建。
* **封装**: 属性和方法的封装。
* **继承**: 类的继承,继承的方法和属性。
* **多态**: 方法的重载和方法的重写。
* **抽象类与接口**: 抽象类的定义,接口的定义和实现。
**3. 异常处理*** **异常的分类**: Checked异常和Unchecked异常。
* **try-catch块**: 异常的捕获和处理。
* **finally块**: 无论是否发生异常都会执行的代码块。
* **throw与throws关键字**: 抛出异常和声明可能抛出的异常。
**4. 集合框架*** **数组**: 数组的定义与使用。
* **List, Set, Map**: 常用集合接口及其实现类(如ArrayList, HashSet, HashMap)。
* **泛型**: 集合中的元素可以有相同的类型。
* **迭代器**: 遍历集合的方法。
**5. 多线程编程*** **线程的生命周期**: 新建线程,启动线程,等待线程,唤醒线程,终止线程。
* **线程同步**: 防止多个线程同时访问某一共享资源造成的数据不一致。
* **线程间通信**: 使用wait()和notify()方法实现线程间通信。
**6. 网络编程*** **Socket编程**: 建立Socket连接,发送和接收数据。
java实习日记范文3篇----WORD文档,下载后可编辑修改----下面是小编收集整理的范本,欢迎您借鉴参考阅读和下载,侵删。
您的努力学习是为了更美好的未来!实习日志(一)经过一天一夜的行程,终于到了这座美丽的城市----青岛。
拖着疲惫的身躯走出车站的那一瞬间,迎面扑来的海水的味道,将心底的那一丝疲惫伴着海风悄然的吹走。
第一次如此近距离的接触海,第一次接受海风的洗礼,我的心彷佛飘荡在那泛着层层浪花的海里。
到了实训基地,我看到了久别的几个同学也是永远的同学,感到分外的高兴,每一个人都充满着本属于我们这个时代的朝气与活力。
大家聚在一块永远都有说不完的话和描绘不完的未来。
实训的第一天,实训基地的组织人员为我们做了一个简单的实训典礼,介绍了我们在实训期间应该遵守的规章制度,为我们安排了一个简单的实训实施计划。
老师们一直都在强调着,来到这里就要把实训当做是真正的工作,我们每时每刻都要严格的要求自己,把自己当成一个职业人来对待,要完成从学生到职业人角色的转变,征做一名合格的职员,要体验什么是正规企业的规范模式。
我会努力完成这次实训内容,因为我会收获很多。
实习日志(二)来青岛的第二天,感觉整个身体都浸在海水的笼罩下,细细品味着还带给我们的清爽,有一种异样的感觉,同学们都玩笑的说,人生就是在不断的感受和体会这些不一样,生活才会多姿多彩。
我们遇到了具有多年开发经验,计算机工程硕士而且个性随和的讲师黄进华。
接下来的九天时间他将和我们一起度过,今天主要是为我们讲解了C#变成语言里的一些基础知识,让我们巩固和深化,现在才真正感觉到,其实大学里的很多东西并没学的很深,很多东西都没去深入学习,现在回遇到很多问题,但也只是一些肤浅的,而真正要在这个领域有所发展,我们必须通过不断的努力才能有所发展。
黄老师以他多年的工作经验和人生阅历,为我们提供了很多的意见和建议,让我们从内心深处不要因为较低的基础而对实训产生恐惧,要以饱满的热情,要以作为一个IT人拥有的毅力与勇气,去解决难以解决的问题,努力克服困难,勇往直前。
【JAVA】笔记(8)ng.String精讲String 特性:1.String 表⽰字符串类型,属于引⽤数据类型,所以其储存的是地址;2.java 中规定,双引号括起来的字符串是不可变的,也就说” name “永远也只能是” name “,不能改变;3.由于字符串在使⽤中过于频繁,所以为了保证执⾏效率,SUN 公司设定把字符串放到了⽅法区的字符串常量池中;4.凡是双引号括起来的,都在字符串常量池中有⼀份;String类构造⽅法:1.String str = "java" ; //⾸先查找字符串常量池中是否有“java”,若⽆,则创建并将其地址返回给栈内存中的字符串变量 str ,若有,则直接返回给 str ;以下均只讨论字符串常量池中没有被查找字符串的情况2.String str = new String( "java" ) ; //⾸先查找字符串常量池中是否有“java”,若⽆,则创建并将其地址返回给堆内存中的String对象,然后再将此String对象的地址返回给栈内存中的字符串变量 str;3.String str = new String( byte数组 ) ;4.String str = new String( byte数组,起始下标,长度 ) ;6.String str = new String( char数组 ) ;5.String str = new String( char数组,起始下标,长度 ) ;3,4,5,6构造⽅法的栗⼦:public class pra{public static void main(String[] args) {byte [] b={97,98,99};char [] c={'H','e','l','l','o'};String s1=new String(b);System.out.println(s1);String s2=new String(b,0,2);System.out.println(s2);String s3=new String(c);System.out.println(s3);String s4=new String(c,0,4);System.out.println(s4);}}运⾏结果:------------------------abcabHelloHell字符串常量池:String str = ” zifu“ + ” chuan “ ;//(先查找字符串常量池中有⽆“zifu”“chuan”,若⽆)在字符串常量池中创建 ” zifu “ ,” chuan “ ,” zifuchuan “,三个字符串;若print (str),则str会直接指向字符串常量池,并返回“ zifuchuan ”String strr = “ zifu ”;//字符串常量池⽆变化(因为已存在“zifu”);辅助理解:1.String s1=“ java ”;String s2=“ java ”;System.out.println( s1==s2 ) // 输出true/false?答:true,因为字符串常量池中的“java”是不变的,所以⽆论是s1还是s2,储存的地址对应的都是那个字符串常量池中的“java”,所以⾃然储存的地址是相同的,⽽“==”⽐较地址,输出true;2.String s1=new String(“ java ”);String s2=new String(“ java ”);System.out.println( s1==s2 ) // 输出true/false?答:false,s1与s2只是储存了“=”右边在堆内存中创建的String对象的地址,⽽这俩个new出来的地址是不同的,所以输出“false”;再问内存中⼀共创建了⼏个对象?答:3个,⽅法区中⼀个 “java”,堆内存中俩个String对象;String类的⽅法:注意:双引号中的空格正常会影响运⾏结果,但为了⽅便阅读,博主加上了⼀些空格(当它不存在就好了~~)1.char charAt( int index )System.out.println( "王狗蛋".charAt( 1 ) ) ; // 输出:狗2.boolean contains( CharSequence s ) //是否包含System.out.println( "http".contains( "ht" ) ) //输出:true3.boolean endWith( String string ) //是否以其结尾System.out.println( "nameabn".endWith( abn ) ) //输出:true4.boolean equals( Object object ) // 见 java笔记(6)5.boolean equalsIgnoranceCase ( String string ) //判断字符串是否相等,并忽略⼤⼩写System.out.println( "AAA". equalsIgnoranceCase( “aaa” ) ) //输出:true6.byte [ ] getBytes( ) //把字符串转化为byte数组byte [ ] bytes=" abc ".getBytes( ) ;遍历数组 bytes ,输出:97 98 997.int indexOf( String string ) //判断某个字符串在当前字符串中第⼀次出现的索引(下标)System.out.println( "hello". indexOf( "el" )) //输出:18.boolean isEmpty( ) //判断是否为空字符串(底层调⽤“ Length( ) ”⽅法)System.out.println( "yes".isEmpty( ) ) //输出:false9.int Length( ) //输出字符串长度System.out.println( "12345".Length( ) ) //输出:5注意:Length( )⽅法与“ .length ”不同,前者返回字符串长度,后者返回数组长度10.int lastIndexOf( String string )//输出某个字符串在当前字符串中最后⼀次出现的索引(下标)System.out.println( "mynameisname" .lastIndexOf( “name” ) ) //输出:811.String repalce( CharSequence c1 , CharSequence c2 ) //替换字符串System.out.println("name" . replace ( "name" , " good " ) ) ; //输出:good12.String [ ] split ( String string ) //根据后⾯的字符串对前⾯的字符串进⾏拆分String [ ] string = "1,2;3,4;5," . split( " , " ) //输出:1 2 ; 3 4 ; 513.boolean startsWith( String string ) //是否以其开始System.out.println( "nameabn".startsWith( na ) ) //输出:true14.String subString( int i ) //以 i 为起始下标,截取以后的字符串System.out.println( "123456789". subString( 2 ) ) //输出:345678915.String subString( int i , int j ) //以 i 为起始下标(包括),以 j 为终点下标(不包括),截取字符串System.out.println( "123456789" . substring( 2 , 9 ) ) //输出:345678916.char [ ] toCharArray ( ) //把字符串转化为 char 数组char [ ] chars =" abc ". toCharArray ( ) ;遍历数组 chars ,输出:a b c17.String toLowerCase( ) //全转换为⼩写System.out.println( "abcd" . toLowerCase( ) ) //输出:ABCD18.String toUpperCase( ) //全转换为⼤写System.out.println( "ABCD" . toUpperCase( ) ) //输出:abcd19.String trim( ) //去除字符串中的空格System.out.println(" hahaha " . trim( ) ) ; //输出:hahaha20.String中只有⼀个静态⽅法--- vauleOf( ) //将⾮字符串转换为字符串String str1 = String . valueOf( true ) ; //boolean--->StringString str2 = String . valueOf( 1.33 ) ; //double--->StringString str3 = String . valueOf( 100 ) ; //int--->String21.int compareTo( String string ) //⼤⼩根据26个英⽂字母排序⽽定System.out.println( "abc".compareTo( “abc” ) ) //输出 0;System.out.println( "abc".compareTo( ”abz“ ) ) //输出 -1;System.out.println( "aby".compareTo( “abd” ) ) //输出 1;字符串拼接:1.通过拼接符“ + ”进⾏拼接,有⼀个缺点,就是每次拼接,都会在字符串常量池中创建俩个对象(在拼接部分字符串为新字符串的情况下),浪费内存;2.通过 stringBuffer 和 stringBuilder ⽅法来进⾏拼接;栗⼦⽼师:public class pra {public static void main(String[] args) {StringBuffer str1=new StringBuffer();StringBuilder str2=new StringBuilder();str1.append("hello");System.out.println("StringBuffer---str1:"+str1);str1.append(" world");System.out.println("StringBuffer---str1:"+str1);str2.append("hello world");System.out.println("StringBuilder---str2:"+str2);}}运⾏结果:--------------------------StringBuffer---str1:helloStringBuffer---str1:hello worldStringBuilder---str2:hello worldProcess finished with exit code 0stringbuffer和stringbuilder的区别,⽬前博主只知道在线程安全⽅⾯,StringBuffer >> StringBuilder( 不安全 ) ;随笔:1.System.out.println( "jim".equals( 字符串变量) ) ;System.out.println( "字符串变量".equals(jim ) ) ;//更推荐使⽤第⼀种⽅式来判断这俩个字符串内容是否相同,因为第⼀种可以避免“ 字符串变量为null ”⽽导致的空指针异常;2.通过源代码可以看出:System.out.println( ) ; 这个⽅法输出任何类型数据时,都是先转换为字符串,再输出由于博主⽬前只是⼀只猿宝宝,所以有些地⽅可能说的有些⽚⾯,若前辈们能够指点⼀⼆就更好了(~ ̄(OO) ̄)ブ。
JAVA常⽤知识点(必备)1、JAVA的跨平台原理java通过不同系统,位数,版本的虚拟机来屏蔽不同的指令集差异,对外提供统⼀的接⼝(java api)2、JAVA特性封装:属性私有化,对外提供⽅法(set/get)继承:在⼀个现有类基础上,修改或新增新的内容多态:引⽤变量指向的具体类型和⽅法在运⾏时才确定3、String、StringBuffer、StringBuiler区别String是内容不可变的字符串,StringBuffer、StringBuiler是内容可变的字符串StringBuffer是线程安全的、StringBuiler是⾮线程安全的4、集合(1)集合分两种,值集合和键值集合值集合主要是List和Set,都继承了Collection接⼝键值集合主要是Map(2)List:有序,可重复分为ArrayLIst、LinkedList和VectorArrayList底层是数组实现,为连续的内存空间,所以查找速度快,增删速度慢LinkedList底层是链表实现,不连续的内存空间,所以增删速度快,查找速度慢Vector底层是数组,线程安全(3)Set:⽆序,不可重复重写equals和hashcode⽅法,因为在add,会先⽤equals判断值是否相等,再判断是否具有相同的hash值(属性相同的对象被看作同⼀个对象)(4)Map:键值对hashMap:可以存储空值,⾮线程安全。
put存储键值对的时候,会调⽤hashcode⽅法返回⼀个hashcode值,找到bucket位置存储Entry对象,使⽤get(key)获取对象解决hashmap⾮线程安全问题:因为hashmap内部类似链表结构,在多线程环境下有可能成环,解决⽅法ConcurrentHashMap(把⼀个Map分成N个segment,分别加锁,保证线程安全)。
hashtable:线程安全5、拷贝⽂件思路:源⽂件、源地址、⽬标⽂件、⽬标地址缓存输⼊输出流(FileInputStream、FileOutputStream)改进:FileChannels(transferTo),适合拷贝⼤⽂件6、线程池为了避免重复的创建和销毁线程,让创建的线程进⾏复⽤,存放空闲线程的⼀个池⼦Executors.NewFixedThreadPool()创建⼀个固定⼤⼩的线程池7、存储过程的好处(1)预编译,只在创建时进⾏编译,提⾼数据库执⾏速度(2)⽐较复杂的业务需要多条sql,提⾼⽹络传输速度(3)安全性8、ajax参数url:请求地址type:get/postdata:请求数据dataType:服务器返回数据类型(json、text、xml、html)success:成功调⽤函数erroe:失败调⽤函数9、Struts2执⾏流程(1)服务端接收客户端请求,经过⼀系列的过滤器,到达核⼼过滤器(StrutsPrepareAndExecuteFilter)(2)StrutsPrepareAndExecuteFilter通过ActionMapper将请求交给ActionProxy代理(3)ActionProxy通过Configeration Manager找到配置⽂件,找到需要调⽤的Action(4)创建⼀个ActionInvocation实例,调⽤Action⽅法,调⽤前后还会执⾏相关的拦截器(5)通过结果集的name返回对应的结果集,对浏览器进⾏响应10、Struts2拦截器通过动态配置,在action前后加⼊⼀些相关的逻辑包括:登录判断,未登录跳转到登录页⾯⽤户权限判断,没有权限给出判断信息操作⽇志11、SpringMvc⼯作流程(1)⽤户向服务器发起请求,请求交给前端控制器DispatcherServlet处理(2)DispatcherServlet对请求的URL进⾏解析,得到URI,调⽤HandlerMapping获得Handler配置的所有相关对象(3)DispatcherServlet根据获得的Handler,选择⼀个合适的HandlerAdapter,执⾏Handler(4)Handler执⾏完成后,返回⼀个ModelAndView对象(5)DispatcherServlet根据返回的ModelAndView,选择⼀个合适的视图解析器,返回客户端12、Struts1⼯作流程(1)服务段接收到客户端请求,交给ActionServlet处理(2)拦截所有.do请求,将客户请求封装到actionForm⾥⾯,到配置⽂件去匹配对应的action(主要有⼏个属性,name对应封装的actionform,input匹配拦截的路径和⽅法,type匹配action的实现类)(3)action处理完返回actionforward对象,根据配置⽂件找到对应页⾯返回给客户端13、SpringMvc和Struts2区别(1)核⼼控制器不同,SpringMvc是Servlet,Struts2是filter(2)控制器实例不同,SpringMvc是基于⽅法级别,只会有⼀个实例,线程不安全,Struts2基于对象,针对不同的请求,产⽣不同的ActionInvaction实例(3)参数传递:Struts2是通过值栈传递,SpringMvc是通过⽅法的参数传递(4)intercepter拦截器:Struts2有⾃⼰的拦截器,SpringMvc⽤aop实现(5)SpringMvc处理ajax请求直接返回数据@ResponseBody14、Struts1和Struts2的区别(1)因为forward都是返回到具体的jsp页⾯,每⼀个forward对应配置⽂件的⼀个forward标签,每⼀次改动配置⽂件都要重启Tomcat(2)struts1⾥的action是单例模式的,供多个请求共享,所以不是线程安全的。
JAVA的面向对象编程--------课堂笔记面向对象主要针对面向过程。
面向过程的基本单元是函数。
什么是对象:EVERYTHING IS OBJECT(万物皆对象)所有的事物都有两个方面:有什么(属性):用来描述对象。
能够做什么(方法):告诉外界对象有那些功能。
后者以前者为基础。
大的对象的属性也可以是一个对象。
为什么要使用面向对象:首先,面向对象符合人类看待事物的一般规律。
对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。
方法的定义非常重要。
方法有参数,也可能有返回值。
注意区分:对象(本身)、对象的实现者、对象的调用者。
分析对象主要从方法开始。
我们通过类来看待对象,类是对象的抽象。
其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。
对象之间的耦合性一定要低(比如不同硬盘和不同主板之间的关系)。
这样才能使每个对象本身做成最好的。
对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。
实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。
可复用性是OOP的基础。
比较面向过程的思想和面向对象的思想:面向过程的思想:由过程、步骤、函数组成,以过程为核心;面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。
面向过程是先有算法,后有数据结构。
面向对象是先有数据结构,然后再有算法。
在用面向对象思想开发的过程中,可以复用对象就进行复用,如无法进行复用则开发新的对象。
开发过程是用对个简单的对象的多个简单的方法,来实现复杂的功能。
从语法上来看,一个类是一个新的数据类型。
在面向对象编程中,除了简单数据类型,就是对象类型。
定义类的格式:class Student{代码}注意类名中单词的首字母大写。
实例变量:定义在类中但在任何方法之外。
(New出来的均有初值)局部变量:定义在方法之中的变量。
局部变量要先赋值,再进行运算,而实例变量均已经赋初值。
这是局部变量和实例变量的一大区别。
实例变量的对象赋值为null。
局部变量不允许范围内定义两个同名变量。
实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效。
实例变量和局部变量允许命名冲突。
书写方法的格式:修饰符返回值方法名调用过程中方法体可能出现的例外public int/void addNumber(参数) throw Excepion {}例:public int addNumber(int a,int b){}注:方法名中的参数int a,int b为局部变量类方法中的一类特殊方法:构造方法。
构造方法是当用类生成对象时,系统在生成对象的过程中利用的方法。
注意:构造方法在生成对象的时候会被调用,但并不是构造方法生成了对象。
构造方法没有返回值。
格式为:public 方法名。
构造方法的方法名与类名相同。
构造方法是在对象生成的过程中自动调用,不可能利用指令去调用。
在一个对象的生成周期中构造方法只用一次,一旦这个对象生成,那么这个构造方法失效。
用类来生成对象的语句:Student s=new Student()。
第一个Student表示这是用Student类进行定义。
“Student()”表示调用一个无参数的构造方法。
如果()中有参数,则系统构造对象的过程中调用有参的方法。
此时S称为一个对象变量。
Student s的存储区域存放的是地址:一个对象在硬盘上占有一个连续地址,首地址赋予s空间。
S称为对象Student的引用。
注意:在对象变量中存放的是引用(地址);在简单变量中存放的是数值。
可以构造多个构造方法,但多个构造方法的参数表一定不同,参数顺序不同即属于不同的构造方法:public student(string name,int a){}public student(int a,string name){}为两个不同的构造方法。
如果我们未给系统提供一个构造方法,那么系统会自动提供一个为空的构造方法。
练习:写一个类,定义一个对象,定义两个构造方法:一个有参,一个无参。
(编写一个程序验证对象的传递的值为地址)注意下面这种形式:static void changename(student stu){stu.setName “LUCY”}注意生成新的对象与旧对象指向无关,生成新对象生命消亡与旧对象无关。
面向对象方法的重载(overloading)和覆盖(overriding)。
在有些JA V A书籍中将overriding称为重载,overloading称为过载。
Overloading在一个类中可以定义多个同名方法,各个方法的参数表一定不同。
但修饰词可能相同,返回值也可能相同。
在程序的编译过程中根据变量类型来找相应的方法。
因此也有人认为overloading是编译时的多态,以后我们还会学到运行时多态。
为什么会存在overloading技术呢?作为应对方法的细节。
利用类型的差异来影响对方法的调用。
吃()可以分为吃肉,吃菜,吃药,在一个类中可以定义多个吃方法。
构造方法也可以实现overloading。
例:public void teach(){};public void teach(int a){};public void teach(String a){}为三种不同的方法。
Overloading方法是从低向高转。
Byte—short—float—int—long—double。
在构造方法中,this表示本类的其他构造方法:student(){};student(string n){this();//表示调用student()}如果调用student(int a)则为this(int a)。
特别注意:用this调用其他构造方法时,this必须为第一条语句,然后才是其他语句。
This表示当前对象。
Public void printNum(){Int number=40;System.out.println(this.number);}此时打印的是实例变量,而非局部变量,即定义在类中而非方法中的变量。
This.number表示实例变量。
谁调用this.number那么谁即为当前(this)对象的number方法。
封装:使对象的属性尽可能私有,对象的方法尽可能的公开。
用private表示此成员属性为该类的私有属性。
Public表示该属性(方法)公开;Private表示该属性(方法)为只有本类内部可以访问(类内部可见)。
(想用private还要用set和get方法供其他方法调用,这样可以保证对属性的访问方式统一,并且便于维护访问权限以及属性数据合法性)如果没有特殊情况,属性一定私有,方法该公开的公开。
如果不指明谁调用方法,则默认为this。
区分实例变量和局部变量时一定要写this。
11.29继承:父类(SuperClass)和子类(SonClass)。
父类的非私有化属性和方法可以默认继承到子类。
Class Son extends Father{}而如果父类中的私有方法被子类调用的话,则编译报错。
父类的构造方法子类不可以继承,更不存在覆盖的问题。
(非构造方法可以)如果子类访问父类的构造方法,则在编译的时候提示访问不到该方法。
JA V A中不允许多继承,一个类有且只有一个父类(单继承)。
JA V A的数据结构为树型结构,而非网状。
(JA V A通过接口和内部类实现多继承)方法的覆盖(overriding)方法的重载并不一定是在一个类中:子类可以从父类继承一个方法,也可以定义一个同名异参的方法,也称为overloading。
当子类从父类继承一个无参方法,而又定义了一个同样的无参方法,则子类新写的方法覆盖父类的方法,称为覆盖。
(注意返回值类型也必须相同,否则编译出错。
)如果方法不同,则成重载。
对于方法的修饰词,子类方法要比父类的方法范围更加的宽泛。
父类为public,那么子类为private则出现错误。
之所以构造方法先运行父类再运行子类是因为构造方法是无法覆盖的。
以下范围依次由严到宽:private :本类访问;default :表示默认,不仅本类访问,而且是同包可见。
Protected:同包可见+不同包的子类可见Public :表示所有的地方均可见。
当构造一个对象的时候,系统先构造父类对象,再构造子类对象。
构造一个对象的顺序:(注意:构造父类对象的时候也是这几步)①递归地构造父类对象;②顺序地调用本类成员属性赋初值语句;③本类的构造方法。
Super()表示调用父类的构造方法。
Super()也和this一样必须放在第一行。
This()用于调用本类的构造方法。
如果没有定义构造方法,那么就会调用父类的无参构造方法,即super()。
要养成良好的编程习惯:就是要加上默认的父类无参的构造方法。
思考:可是如果我们没有定义无参的构造方法,而在程序中构造了有参的构造方法,那么如果方法中没有参数,那么系统还会调用有参的构造方法么?应该不会。
多态:多态指的是编译时类型变化,而运行时类型不变。
多态分两种:①编译时多态:编译时动态重载;②运行时多态:指一个对象可以具有多个类型。
对象是客观的,人对对象的认识是主观的。
例:Animal a=new Dog();查看格式名称;Dog d=(Dog)a。
声明父类来引用子类。
(思考上面的格式)运行时多态的三原则:(应用时为覆盖)1、对象不变;(改变的是主观认识)2、对于对象的调用只能限于编译时类型的方法,如调用运行时类型方法报错。
在上面的例子中:Animal a=new Dog();对象a的编译时类型为Animal,运行时类型为dog。
注意:编译时类型一定要为运行时类型的父类(或者同类型)。
对于语句:Dog d=(Dog)a。
将d强制声明为a类型,此时d为Dog(),此时d就可以调用运行时类型。
注意:a和d指向同一对象。
3、在程序的运行时,动态类型判定。
运行时调用运行时类型,即它调用覆盖后的方法。
关系运算符:instanceofa instanceof Animal;(这个式子的结果是一个布尔表达式)a为对象变量,Animal是类名。
上面语句是判定a是否可以贴Animal标签。
如果可以贴则返回true,否则返回false。
在上面的题目中: a instanceof Animal返回 True,a instanceof Dog也返回 True,instanceof用于判定是否将前面的对象变量赋值后边的类名。
Instanceof一般用于在强制类型转换之前判定变量是否可以强制转换。
如果Animal a=new Animal();Dog d=Dog()a;此时编译无误,但运行则会报错。
Animal a=new Dog()相当于下面语句的功能:Animal a=getAnimal();Public static Animal.getAnimal;Return new Dog();封装、继承、多态为面向对象的三大基石(特性)。